哈希是一组键值对。 Perl存储哈希的元素, 以便它基于其键搜索值。哈希变量以"%"符号开头。
Perl要求哈希的键是字符串, 而值可以是任何
标量
。这些值可以是数字, 字符串或参考。如果将非字符串值用作键, 则会产生意外的结果。
哈希键必须唯一。如果将新的键值对添加到哈希中并且该键存在, 则其对应的值将被覆盖。
创建哈希
初始化哈希变量的方法有很多, 如下所示:
如下所示, 直接分配该值, 并将数据添加到现有哈希中。
$stud{'Comp'} = 45;
$stud{'Inft'} = 42;
$stud{'Extc'} = 35;
另一种方法是使用列表, 通过获取单个对将其转换为哈希。该对中的第一个元素用作键, 第二个元素用作值。
%stud = ('Comp', 45, 'Inft', 42, 'Extc', 35);
一种方法是使用
=>
指示键/值对, 如下所示:
%stud = ('Comp' =>
45, 'Inft' =>
42, 'Extc' =>
35);
另一种执行相同操作的方法如下所示。在这里, 所有键都以连字符(-)开头, 因此在它们周围不需要加引号。仅当单词中没有空格时, 才能使用此方法构建哈希。
%stud = (-Comp =>
45, -Inft =>
42, -Extc =>
35);
访问哈希元素
要从哈希中访问单个元素, 变量会以美元符号($)为前缀, 然后将元素键附加在变量名后的花括号中。
下面的示例说明了如上所述的所有哈希创建方法:
【Perl哈希详细解读】范例:
#!/usr/bin/perl# Initializing Hash1 by
# directly assinging values
$stud1 { 'Comp' } = 10;
$stud1 { 'Inft' } = 20;
$stud1 { 'Extc' } = 30;
# printing elements of stud
print "Printing values of Hash1\n" ;
print "$stud1{'Comp'}\n" ;
print "$stud1{'Inft'}\n" ;
print "$stud1{'Extc'}\n" ;
# Initializing Hash2 by taking
# indiviual pairs
%stud2 = ( 'Comp' , 15, 'Inft' , 18, 'Extc' , 22);
# Extracting values using keys
print "\nPrinting values of Hash2\n" ;
print "computer = $stud2{'Comp'}" ;
print "\ninft = $stud2{Inft}" ;
print "\nextc = $stud2{'Extc'}\n" ;
# Initializing Hash3 using '=>
'
%stud3 = ( 'Comp' =>
45, 'Inft' =>
42, 'Extc' =>
35);
# printing elements of stud3
print "\nPrinting values of Hash3\n" ;
print "$stud3{'Comp'}\n" ;
print "$stud3{'Inft'}\n" ;
print "$stud3{'Extc'}\n" ;
# Initializing Hash4 using hyphen(-)
%stud4 = ( -Comp =>
5, -Inft =>
15, -Extc =>
25);
# Printing elements of stud4
print "\nPrinting values of Hash4\n" ;
print "$stud4{'-Comp'}\n" ;
print "$stud4{'-Inft'}\n" ;
print "$stud4{'-Extc'}" ;
输出如下:
Printing values of Hash1
10
20
30Printing values of Hash2
computer = 15
inft = 18
extc = 22Printing values of Hash3
45
42
35Printing values of Hash4
5
15
25
提取键和值
有时需要提取哈希的键和值以对其执行各种操作。诸如元素修改, 删除, 添加等操作。哈希允许使用内置函数来提取这些键和值。
可以使用以下方法从哈希表中获取所有键的列表:
键
功能。
语法:keys%HASH返回HASH中存在的所有键的数组例子:
# Initializing Hash with Key-Value pairs
%stud = ( 'Comp' =>
45, 'Inft' =>
42, 'Extc' =>
35);
# Extracting keys from hash
@Key_array = keys %stud ;
# Printing the extracted keys
print "Keys are :\n" ;
print "$Key_array[0]\n" ;
print "$Key_array[1]\n" ;
print "$Key_array[2]\n" ;
输出如下:
Keys are :
Comp
Extc
Inft
同样, 价值观函数用于获取所有值的列表。
语法:values%HASH返回具有所有HASH值的数组例子:
# Initializing Hash with Key-Value pairs
%stud = ( 'Comp' =>
45, 'Inft' =>
42, 'Extc' =>
35);
# Extracting values from hash
@value_array = values %stud ;
# Printing the extracted values
print "Values are :\n" ;
print "$value_array[0]\n" ;
print "$value_array[1]\n" ;
print "$value_array[2]\n" ;
输出如下:
Values are :
45
35
42
推荐阅读
- 如何使用CSS使div垂直滚动()
- C和Dart之间的区别
- jQuery | jQuery.support属性用法详细解读
- Python中的多线程详细解读1
- C-SCAN磁盘调度算法详细介绍
- PHP chr()函数用法介绍
- 云计算中的虚拟化和类型介绍
- PHP | gd_info()函数用法介绍
- C++中的引用用法指南和代码示例