# 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
```