#!/usr/bin/perl
sub t {
print "in t\n";
print "@_\n";
&s;
}
sub s {
print "in s\n";
print "@_\n";
}
t(1,2);
print "out\n";
print "@_\n";
Output:
in t
1 2
in s
1 2
out
如你所见,&s
output 1 2
当没有传递参数时。这是一个功能还是一个错误?
测试版本是5.8.8。
使用调用子程序&NAME;
语法使当前@_
对它可见。这记录在perlsub http://perldoc.perl.org/perlsub.html:
如果使用子程序调用&
形式,参数列表是可选的,如果省略,则没有@_
为子程序设置数组:@_
调用时的数组对子例程是可见的。这是新用户可能希望避免的效率机制。
所以,这绝对是一个功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)