Perl 中变量赋值shift是什么意思?

函数定义为
sub Modify_Debug{$Debug=shift;}
这有什么语法糖吗?

阅读 7.9k
1 个回答

shift函数从数组中删除第一个元素,并返回它。数组因少一个元素而缩短。

在一个函数中默认数组(如果没有作为参数给出)是@_ ,或是文件范围内@ARGV

因此,$Debug=shift; 设置为第一个函数参数。

shift()是一个内置的Perl子例程,它接受一个数组作为参数,然后返回并删除该数组中的第一个项目。通常的做法是获取通过shift调用传递给子程序的所有参数。例如,假设您有一个foo带三个参数的子例程。将这些参数分配给局部变量的一种方法用shift是这样的:

sub foo {
  my $x = shift;
  my $y = shift;
  my $z = shift;
  # do something
  print($x,$y, $z); 
}


foo(1,2, 3 );

#输出123

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进