循环遍历 Perl 列表、哈希表和数组228


在 Perl 编程中,循环用于遍历数据结构,如列表、哈希表和数组。循环允许对每个元素执行特定的代码块。以下是 Perl 中循环遍历不同数据结构的常见方法:

循环遍历列表

使用 foreach 循环遍历列表中的每个元素。foreach 循环的语法如下:```
foreach my $element (@list) {
# 对 $element 执行代码块
}
```

例如,以下代码段遍历一个包含水果名称的列表并打印每个水果名称:```
my @fruits = ('apple', 'banana', 'cherry', 'dog');
foreach my $fruit (@fruits) {
print "$fruit";
}
```

循环遍历哈希表

使用 foreach 循环遍历哈希表中的每个键值对。foreach 循环的语法如下:```
foreach my ($key, $value) (%hash) {
# 对 $key 和 $value 执行代码块
}
```

例如,以下代码段遍历一个包含国家和首都的哈希表并打印每个国家及其首都:```
my %countries = (
'USA' => 'Washington D.C.',
'China' => 'Beijing',
'Japan' => 'Tokyo',
'Germany' => 'Berlin'
);
foreach my ($country, $capital) (%countries) {
print "$country: $capital";
}
```

循环遍历数组

使用 for 循环遍历数组中的每个元素。for 循环的语法如下:```
for (my $i = 0; $i < @array; $i++) {
# 对 $array[$i] 执行代码块
}
```

例如,以下代码段遍历一个包含数字的数组并打印每个数字:```
my @numbers = (1, 2, 3, 4, 5);
for (my $i = 0; $i < @numbers; $i++) {
print "$numbers[$i]";
}
```

其他循环类型

除了 foreach 和 for 循环之外,Perl 还提供以下循环类型:
while 循环:只要某个条件为真,就会一直执行循环体。
until 循环:只要某个条件为假,就会一直执行循环体。
do while 循环:先执行循环体,然后检查条件。如果条件为真,则继续执行循环体;如果条件为假,则停止循环。
do until 循环:先执行循环体,然后检查条件。如果条件为假,则继续执行循环体;如果条件为真,则停止循环。

循环控制

Perl 提供以下操作符来控制循环:
next:跳过当前迭代并继续执行循环的下一迭代。
last:立即退出循环。
redo:重复当前迭代。

示例

以下是一个示例脚本,展示了如何使用 Perl 循环遍历不同类型的数据结构:```
#!/usr/bin/perl
# 列表
my @fruits = ('apple', 'banana', 'cherry', 'dog');
print "Fruits:";
foreach my $fruit (@fruits) {
print "$fruit";
}
# 哈希表
my %countries = (
'USA' => 'Washington D.C.',
'China' => 'Beijing',
'Japan' => 'Tokyo',
'Germany' => 'Berlin'
);
print "Countries and Capitals:";
foreach my ($country, $capital) (%countries) {
print "$country: $capital";
}
# 数组
my @numbers = (1, 2, 3, 4, 5);
print "Numbers:";
for (my $i = 0; $i < @numbers; $i++) {
print "$numbers[$i]";
}
```

输出:```
Fruits:
apple
banana
cherry
dog
Countries and Capitals:
USA: Washington D.C.
China: Beijing
Japan: Tokyo
Germany: Berlin
Numbers:
1
2
3
4
5
```

2024-12-18


上一篇:Perl 中的 POSIX 模块

下一篇:Perl 字符串:提取子字符串