首页 > 代码库 > 重读了Perl高效编程
重读了Perl高效编程
再次阅读,发现一些之前忽略掉的内容:
1. 关于引用作为参数传递,例如:
bar(\@bletch);sub bar{ my @arr = @{shift}}
但是这样,shift只是一个变量名称而不是内建函数。如果想要变成内建函数,必须按照下面的方法添加点什么:
my @arr = @{shift()}
或者占位符:
my @arr = @{+shift}
2. select 和write的默认操作对象是当前文件句柄。
shift和pop的默认操作对象是:子程序内为@_,子程序外为@ARGV。
gmtime和localtime的默认操作对象是time函数。
3. =>操作符,会将改操作符左边的对象自动识别为一个字符串。
4. 若某个函数的返回值为一个数组引用,则以下三种形式都能够工作:
my @arr = @{ function_return_arrayref()}my @arr = @{ &function_return_arrayref}my @arr = @{ +function_return_arrayref}
如果想要返回的数组进入一个散列,则可以使用eval:
my $hashref = eval{ return {key_value_pairs()} }
Perl 解释器总是会把花括号中的单个标识符(包括两边空白)都识别为字符串。
5. 对于未加参数调用的子程序,子程序会有一个默认为空的@_数组。
如果使用:&加载子程序名称前调用,并且不加圆括号,则会继承当前环境下的@_数组。
重读了Perl高效编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。