Skip to content

Latest commit

 

History

History
107 lines (71 loc) · 2.16 KB

11.md

File metadata and controls

107 lines (71 loc) · 2.16 KB

Perl 中的哈希

原文: https://beginnersbook.com/2017/05/hashes-in-perl/

哈希是一组键值对。哈希变量以%符号为前缀。让我们先举一个简单的例子,然后我们将详细讨论哈希。

#!/usr/bin/perl

%age = ('Chaitanya Singh', 29, 'Ajeet', 28, 'Lisa', 25);

print "\$age{'Lisa'}: $age{'Lisa'}\n";
print "\$age{'Chaitanya Singh'}: $age{'Chaitanya Singh'}\n";
print "\$age{'Ajeet'}: $age{'Ajeet'}\n";

输出:

$age{'Lisa'}: 25
$age{'Chaitanya Singh'}: 29
$age{'Ajeet'}: 28

在上面的例子中,我们创建了一个哈希并显示了它的元素。让我们详细了解每个部分:

创建哈希

第一种方法:这是我们在上面的例子中看到的:

%age = ('Chaitanya Singh', 29, 'Ajeet', 28, 'Lisa', 25);

这里'Chaitanya Singh'是键 1,29 是值 1;'Ajeet'是键 2,28 是值 2;类似'Lisa',25 是第三键值对。

第二种方法:这是创建哈希的首选方式,因为它提高了可读性。在这种方法中,我们用=>符号分隔每对的键和值。

例如:

%age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25);

有用的哈希函数:

1)keys函数:

keys函数返回哈希中所有键的列表。

例:

#!/usr/bin/perl

%age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25);
my @k = keys %age;
print "Keys: @k\n";

输出:

Keys: Ajeet Chaitanya Singh Lisa

2)values函数:

values函数返回散列中所有值的列表。 例:

#!/usr/bin/perl

%age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25);
my @k = values %age;
print "Values: @k\n";

输出:

Values: 28 29 25

3)each函数:

each函数用于迭代哈希,它通常用于while循环。

例:

#!/usr/bin/perl

%age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25);
while ( ($key, $value) = each %age ) { 
      print "Key: $key, Value: $value\n";
}

输出:

Key: Lisa, Value: 25
Key: Chaitanya Singh, Value: 29
Key: Ajeet, Value: 28