Perl哈希怎么用?

张开发
2026/4/19 14:31:50 15 分钟阅读

分享文章

Perl哈希怎么用?
Perl 哈希哈希是key/value对的集合。Perl中哈希变量以百分号 (%) 标记开始。访问哈希元素格式${key}。以下是一个简单的哈希实例实例#!/usr/bin/perl %data (google, google.com, , example.com, taobao, taobao.com); print \$data{google} $data{google}\n; print \$data{} $data{}\n; print \$data{taobao} $data{taobao}\n;执行以上程序输出结果为创建哈希创建哈希可以通过以下两种方式一、为每个 key 设置 value$data{google} google.com; $data{} example.com; $data{taobao} taobao.com;二、通过列表设置列表中第一个元素为 key第二个为 value。%data (google, google.com, , example.com, taobao, taobao.com);也可以使用符号来设置 key/value:%data (googlegoogle.com, example.com, taobaotaobao.com);以下实例是上面实例的变种使用-来代替引号%data (-googlegoogle.com, -example.com, -taobaotaobao.com);使用这种方式 key 不能出现空格读取元素方式为$val $data{-google} $val $data{-}访问哈希元素访问哈希元素格式${key}实例如下实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); print \$data{google} $data{google}\n; print \$data{} $data{}\n; print \$data{taobao} $data{taobao}\n;执行以上程序输出结果为读取哈希值你可以像数组一样从哈希中提取值。哈希值提取到数组语法格式{key1,key2}。实例#!/uer/bin/perl %data (-taobao 45, -google 30, - 40); array data{-taobao, -}; print Array : array\n;执行以上程序输出结果为Array : 45 40读取哈希的 key 和 value读取所有key我们可以使用keys函数读取哈希所有的键语法格式如下keys %HASH该函数返回所有哈希的所有 key 的数组。实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); names keys %data; print $names[0]\n; print $names[1]\n; print $names[2]\n;执行以上程序输出结果为taobao google类似的我们可以使用values函数来读取哈希所有的值,语法格式如下values %HASH该函数返回所有哈希的所有 value 的数组。实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); urls values %data; print $urls[0]\n; print $urls[1]\n; print $urls[2]\n;执行以上程序输出结果为taobao.com example.com google.com检测元素是否存在如果你在哈希中读取不存在的 key/value 对 会返回undefined值且在执行时会有警告提醒。为了避免这种情况我们可以使用exists函数来判断key是否存在存在的时候读取实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); if( exists($data{facebook} ) ){ print facebook 的网址为 $data{facebook} \n; } else { print facebook 键不存在\n; }执行以上程序输出结果为facebook 键不存在以上代码中我们使用了IF...ELSE语句在后面的章节我们会具体介绍。获取哈希大小哈希大小为元素的个数我们可以通过先获取 key 或 value 的所有元素数组再计算数组元素多少来获取哈希的大小实例如下实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); keys keys %data; $size keys; print 1 - 哈希大小: $size\n; values values %data; $size values; print 2 - 哈希大小: $size\n;执行以上程序输出结果为1 - 哈希大小: 3 2 - 哈希大小: 3哈希中添加或删除元素添加 key/value 对可以通过简单的赋值来完成。但是删除哈希元素你需要使用delete函数实例#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); keys keys %data; $size keys; print 1 - 哈希大小: $size\n; # 添加元素 $data{facebook} facebook.com; keys keys %data; $size keys; print 2 - 哈希大小: $size\n; # 删除哈希中的元素 delete $data{taobao}; keys keys %data; $size keys; print 3 - 哈希大小: $size\n;执行以上程序输出结果为1 - 哈希大小: 3 2 - 哈希大小: 4 3 - 哈希大小: 3迭代哈希我们可以使用 foreach 和 while 来迭代哈希实例 - 使用 foreach#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); foreach $key (keys %data){ print $data{$key}\n; }实例 - 使用 while#!/usr/bin/perl %data (googlegoogle.com, example.com, taobaotaobao.com); while(($key, $value) each(%data)){ print $data{$key}\n; }执行以上程序输出结果为example.com google.com taobao.com

更多文章