为什么我们在使用my
初始化变量时不应该将shift
用作变量?
示例:
my $Value= shift @_ ;
为什么不接受上述声明?
答案 0 :(得分:3)
您看到什么问题?您的代码没有理由不起作用。
我经常这样写代码:
my $self = shift;
与您的代码唯一的有效区别是,我没有明确给shift()
提供一个参数。在子例程中,不带参数调用shift()
会将值从@_
移出。在子例程外部,不带参数调用shift()
会将值从@ARGV
移出。
当您指@_
时,您可能正在使用@ARGV
,但是如果没有更多背景信息,就无法确定。