Perl shift返回传递的参数与shift()函数返回第一个元素

时间:2014-02-18 21:46:57

标签: perl

我看到shift在两种情况下使用:

  1. 用于获取传递给子程序的参数

    sub somesub (%) {
      my %params = shift;
      # All parameters now in %params.
      my $filename = $params{'FILE'};
      my @args = @{$params{'ARGS'}};
    }
    
  2. 当它用于返回数组中的第一个元素时

    $elm = shift(@array) 
    
  3. 第一种情况下的shift是否具有相同的功能?

    我也看到它在没有参数的子程序中使用。在那种情况下它意味着什么?

1 个答案:

答案 0 :(得分:4)

它的功能相同。如果没有参数,shift默认使用@_,这是包含传递给脚本或函数的参数的数组。