可以使用 foreach 方便的遍历整个数组或列表。
测试代码:
[Perl] 纯文本查看 复制代码 #!/usr/bin/perl
$val = 10;
$var = 20;
#遍历列表
foreach $val (qw/welcome to groad net/) {
print "$val ";
}
print "\nval is $val\n";
#遍历数组
@array = qw{welcome to groad net};
foreach $var (@array) {
print "$var ";
}
print "\nvar is $var\n";
运行输出:./foreach.pl
welcome to groad net
val is 10
welcome to groad net
var is 20 上面程序中注意到一点,在 foreach 中使用的 $var 和 $val 两个变量都曾经定义过,然而在迭代完后,$var 和 $val 并没有被覆盖,而是保持原来所定义的值。
比较例一:
[Perl] 纯文本查看 复制代码 #!/usr/bin/perl
foreach (<STDIN>) {
print "I saw $_";
}
运行输出:./input.pl
hello
world
perl
world
I saw hello
I saw world
I saw perl
I saw world 首先需要说明的是,这里的 <STDIN> 和 $_ 没有任何关系。Perl 是这样处理的:foreach 遍历的是一个列表,因此在循环开始执行之前,它必须先将输入全部读进来,而这个列表的内容来自标准输入 <STDIN> ,所以当输入若干行并按下 ctrl+d 结束输入后,之前的输入会存储在一个列表中,这时候 foreach 就会逐个遍历其中元素并输出。 |