寻求Perl文档确认shift操作后传递@_仍保留首参数的行为
Perl中
shift()修改@_后的参数传递特性 我正在查找Perl官方文档,确认以下行为:尽管shift()会修改当前子例程内的@_,但传递给后续子例程的参数仍会保留原始的第一个参数。
测试代码
use Data::Dumper; sub f { shift->(@_) } f(sub{ print Dumper \@_ }, 1,2);
输出结果
$VAR1 = [ sub { "DUMMY" }, 1, 2 ];
从测试结果可见:在子例程f中调用shift()取出了自身@_的第一个元素(即匿名子程序),但当将@_传递给该匿名子程序时,参数列表却包含了调用f时传入的全部原始参数。这一现象验证了上述特性。
内容的提问来源于stack exchange,提问作者mpapec
相关产品推荐
相关产品推荐

