1. @_作为默认参数
在子程序中,shift操作会默认用@_作为参数。
介绍一个有趣的语法,它能直接对被引用的数组进行传递,而且只有一行代码:
bar (\@bletch); sub bar { my @a=@{shift()); # 或@a = @{+shift}; }
2. @ARGV 作为默认参数
在子程序之外,shift会把@ARGV作为默认参数。
注意:shift操作符总会使用@ARGV或main::@_,就算当前运行在其他包的名字空间也一样。