+ -
当前位置:首页 → 问答吧 → $_的问题 新手

$_的问题 新手

时间:2011-02-16

来源:互联网

[root@test1 ~]# cat foreach3.pl
#!/usr/bin/perl
#auth youcz 2011 02 11 Wednesday Feburary
@colors=(red,green,blue,brown);
foreach(@colors){
        print "$_ ";
        $_="YUCKY";   -------》》把数组的值改变了吗?$_是一个指针指向@colors[0-3]吗?
}

print "\n@colors\n";


[root@test1 ~]# perl foreach3.pl
red green blue brown
YUCKY YUCKY YUCKY YUCKY

作者: youcz   发布时间: 2011-02-16

是的,你可以通过给$_赋值来改变一些东西,而$_在这种你没有指定单个元素存放变量时就会保存在$_里
  1. $ perl -e '@arr=(1,2,3);for my $i (@arr){print "$_,$i\n";};'
  2. ,1
  3. ,2
  4. ,3
复制代码

作者: justlooks   发布时间: 2011-02-16

结果不是很明显吗?

作者: zzy7186   发布时间: 2011-02-16

回复 justlooks


    谢谢

作者: youcz   发布时间: 2011-02-16

这里 $_ 是别名,对它赋值直接会改变数组元素的。还有函数参数 @_,value %hash 等

作者: zhlong8   发布时间: 2011-02-16