我是Perl的新手,我就像这样使用它们
$_
foreach (@list) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
@_
sub search {
my ($no, @list) = @_;
}
Run Code Online (Sandbox Code Playgroud)
这些下划线变量究竟如何在Perl中起作用?它们有用的其他结构是什么?
Phi*_*ter 50
这是一个问题,表明你真的应该读一本书,也许其余的perl标签常见问题.
然而,$_是一个由某些构造隐式创建并由某些内置函数隐式使用的上下文变量.这里有些例子:
while(<>) {
next if /^#/;
last if /^q(?:uit)?$/;
say "Howdy!" if /^hello$/;
}
Run Code Online (Sandbox Code Playgroud)
这做了很多工作设置和检查$_变量,相当于:
while(defined($_ = <>)) {
next if $_ =~ /^#/;
last if $_ =~ /^q(?:uit)?$/;
say "Howdy!" if $_ =~ /^hello$/;
}
Run Code Online (Sandbox Code Playgroud)
设置的其他构造$_是:foreach循环,given块map和grep操作,以及Try :: Tiny中的catch块.
其他使用的结构$_是:裸print;语句,s///替换运算符和tr///音译运算符.
我建议这样做:当你学习Perl时,不要$_暗中使用.全部写出来(如上面的第二个例子中所示),以便在脑海中强化实际发生的事情.就像你在学习外语时一样,在学会了语言之前,你应该学会正确而细致地说话.$_对于编写更短,更简洁的代码非常有用,并且通过专注于正在进行的处理而不是正在进行的变量实际上可以更清楚,但只有在您学习了操作正在使用的第二特性时才能更清楚$_.否则它只是一个令人困惑的混乱.
正如其他地方所提到的,@_是子程序的参数列表.
| 归档时间: |
|
| 查看次数: |
59910 次 |
| 最近记录: |