perl foreach用法

来源:互联网 发布:弗洛伊德算法 c 编辑:程序博客网 时间:2024/05/16 01:22
Foreach 从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个。控制变量(本例中为$rock)每一次迭代从列表中取出一个新值。第一次为 “ bedrock” ,第三次为 “ lava” 。控制变量不是这些列表元素中的一个拷贝而是这些元素本身。 也就是说,如果在循环中修改这个变量,那原始列表中的元素也会被修改,如下面代码段所显示。这条性质是有用的,但是,如果不清楚,可能对其结果感到吃惊。
当循环结束时$rock 的值为多少呢?其值同循环开始之前相同。foreach 循环中控制变量的值会被 Perl 自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为 undef。这意味着如果有一个变量和控制变量有相同的名字:“ $rock” ,不用担心会混淆它们。  Code:
#!/usr/bin/perl
foreach $rock(qw/ bedrock slate lava/){
print "One rock is $rock.\n";
}

$rock = "black rock";

@rocks=qw/bedrock slate lava/;
foreach$rock(@rocks){
$rock = "\t$rock";
$rock .= "\n";
}
print "The rocks are:\n",@rocks;
print "The rock is: $rock\n";


 Output
One rock is bedrock.
One rock is slate.
One rock is lava.
The rocks are:
bedrock
slate
lava
The rock is: black rock