我看到shift
在两种情况下使用:
用于获取传递给子程序的参数
sub somesub (%) {
my %params = shift;
# All parameters now in %params.
my $filename = $params{'FILE'};
my @args = @{$params{'ARGS'}};
}
当它用于返回数组中的第一个元素时
$elm = shift(@array)
第一种情况下的shift
是否具有相同的功能?
我也看到它在没有参数的子程序中使用。在那种情况下它意味着什么?
答案 0 :(得分:4)
它的功能相同。如果没有参数,shift
默认使用@_
,这是包含传递给脚本或函数的参数的数组。