ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Perl 中的哈希 > 原文: [https://beginnersbook.com/2017/05/hashes-in-perl/](https://beginnersbook.com/2017/05/hashes-in-perl/) **哈希**是一组键值对。哈希变量以`%`符号为前缀。让我们先举一个简单的例子,然后我们将详细讨论哈希。 ```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"; ``` **输出:** ```perl $age{'Lisa'}: 25 $age{'Chaitanya Singh'}: 29 $age{'Ajeet'}: 28 ``` 在上面的例子中,我们创建了一个哈希并显示了它的元素。让我们详细了解每个部分: ## 创建哈希 **第一种方法**:这是我们在上面的例子中看到的: ```perl %age = ('Chaitanya Singh', 29, 'Ajeet', 28, 'Lisa', 25); ``` 这里`'Chaitanya Singh'`是键 1,29 是值 1;`'Ajeet'`是键 2,28 是值 2;类似`'Lisa'`,25 是第三键值对。 **第二种方法**:这是创建哈希的**首选方式**,因为它提高了可读性。在这种方法中,我们用`=>`符号分隔每对的键和值。 例如: ```perl %age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25); ``` #### 有用的哈希函数: **1)`keys`函数:** `keys`函数返回哈希中所有键的列表。 **例:** ```perl #!/usr/bin/perl %age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25); my @k = keys %age; print "Keys: @k\n"; ``` **输出:** ```perl Keys: Ajeet Chaitanya Singh Lisa ``` **2)`values`函数:** `values`函数返回散列中所有值的列表。 **例:** ```perl #!/usr/bin/perl %age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25); my @k = values %age; print "Values: @k\n"; ``` **输出:** ```perl Values: 28 29 25 ``` **3)`each`函数:** `each`函数用于迭代哈希,它通常用于`while`循环。 **例:** ```perl #!/usr/bin/perl %age = ('Chaitanya Singh' => 29, 'Ajeet' => 28, 'Lisa' => 25); while ( ($key, $value) = each %age ) { print "Key: $key, Value: $value\n"; } ``` **输出:** ```perl Key: Lisa, Value: 25 Key: Chaitanya Singh, Value: 29 Key: Ajeet, Value: 28 ```