Perl语言中的 $_ 和 @_
来源:互联网 发布:淘宝大尺度未处理晒单 编辑:程序博客网 时间:2024/06/04 00:45
Perl - $_ and @_
Perl's a great language for special variables- variables that are set up without the programmer having to interveneand providing information ranging from the number of lines read fromthe current input file ($.) through the current process ID ($$) and theoperating system ($^O). Other special variables effect how certainoperations are performed ($| controlling output buffering / flushing,for example), or are fundamental in the operation of certain facilities- no more so than $_ and @_.Lets clear a misconception. $_ and @_ are different variables. In Perl, you can have a list and a scalar of the same name, and they refer to unrelated pieces of memory.
$_ is known as the "default input and pattern matching space". In other words, if you read in from a file handle at the top of a while loop, or run a foreach loop and don't name a loop variable, $_ is set up for you. Then any regular expression matches, chops (and lcs and many more) without a parameter, and even prints assume you want to work on $_. Thus:
while ($line = <FH>) {
if ($line =~ /Perl/) {
print FHO $line;
}
print uc $line;
}
Shortens to:
while (<FH>) {
/Perl/ and
print FHO ;
print uc;
}
@_ is the list of incoming parameters to a sub. So if you write a sub, you refer to the first parameter in it as $_[0], the second parameter as $_[1] and so on. And you can refer to $_# as the index number of the last parameter:
sub demo {
print "Called with ",$#_+1," params/n";
print "First param was $_[0]/n";
Note that the English module adds in the ability to referto the special variables by other longer, but easier to remember, namessuch as @ARG for @_ and $PID for $$. But
use English;
can have a detrimental performance effect if you're matching regular expressions against long incoming strings.
- Perl语言中的 $_ 和 @_
- perl编程中的$_[0],$_[1]
- Perl 中的特殊变量 $&, $`,$' ,@_
- perl @_ $_ 的意思
- perl中@_与$_
- perl的变量@_
- perl自学3_
- _ _FILE_ _和_ _LINE_ _
- c语言链表_递归_创建和输出
- C语言_入门_我和编程
- C语言_初成长_操作符和表达式
- @_ 和$_
- perl中@_,$_和$1,$2,...及其类似变量的含义
- 宏定义中的#,##操作符和... and _ _VA_ARGS_ _
- 宏定义中的#,##操作符和... and _ _VA_ARGS_ _
- 宏定义中的#,##操作符和... and _ _VA_ARGS_ _
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
- Asp.NET生成缩略图
- C# Tips 2 右键单击listBox时弹出右键菜单并选中单击的行
- 安装Tomcat 5.5 管理界面(Administration Web Application)完全手册
- Eclispe RCP 项目综合调研(2006年)(二)
- 鼠标效果
- Perl语言中的 $_ 和 @_
- ASP.NET编程中经常会用到的27个函数集
- [转]oracle更改数据库字符集编码
- 昨天晚上做了一个恶梦!
- 值得深思的十个故事
- 动态网页初学者用ASP.NET制作备忘录实例
- powerdesigner12报constraint name maximum length is limited错误解决方法
- 关于在C++开发的项目中引用后缀名为.c文件的一句话提醒
- 剖析Linux系统启动的后台全过程