perl中直接修改参数的函数

chomp

chomp是一个函数,它直接对参数进行修改。作为一个函数,它有一个返回值,为移除的字符的个数:
$food = <STDIN>;
$betty = chomp $food; #得到值1
通常我们这么写:
chomp ($text = <STDIN>); #读入,但不含换行符

foreach 控制变量

控制变量不是这些列表元素中的一个拷贝而是这些元素本身。也就是说,如果在循环中修改这个变量,那原始列表中的元素也会被修改,如下面代码段所显示。这条性质是有用的,但是,如果不清楚,可能对其结果感到吃惊。
@rocks = qw/ bedrock slate lava /;
foreach $rock(@rocks){
$rock = “ \t$rock” ; #@rocks的每一个元素前加入一个 tab
$rock . = “ \n” ; #每一个元素后加一个换行符
}
print “ The rocks are:\n” ,@rocks; #每一个元素都被缩进了,并且一个元素占一行当循环结束时$rock 的值为多少呢?其值同循环开始之前相同。foreach 循环中控制变量的值会被 Perl 自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值则为 undef。这意味着如果有一个变量和控制变量有相同的名字:“ $rock”,不用担心会混淆它们。

posted on 2008-11-07 13:29  starspace  阅读(416)  评论(0编辑  收藏  举报

导航