perl程序中shift的用法

perl程序中shift的用法,第1张

shift ARRAY

shift

这个函数把数组的第一个值移出并且返回它,然后把数组长度减一并且把所有的东西都顺移。如果清丛稿在数组中不再存在元素,它返回 undef。

如果省略了 ARRAY,那么该函数在子过程和格式的词法范围里移动 @_;

它在文件范围(通常是主程序)里移动 @ARGV。

子过程通常以拷贝它们的参数到词法变量里开始,而 shift 可以用于这个目的:

sub marine {

my $fathoms = shift # 深度

my $fishies = shift # 鱼的数量

my $o2 = shift # 氧气问题

# ...

}

总之就是shift没答孝有数组作为参数时,就是郑早移动@_这个默认的参数。

perl里经常用这种缺省方法的。

首先, 你的 a 因为没有写成 "a", 或 'a' 所以, 这会当成一个 sub 来处理

, 那也因为没有 sub a 这东西, 所以, $n = undef. 如果粗庆你有 use strict ( 十分建议使用 )

你就会得到报错了.

另外 @_ 的意思, 其实也是一个 array , 你传入一个 sub 里面的, 其实是

@_ = ( 1,2,3,4,5..10, undef ) # undef 是来自 $n 的

所以, 实际运作出来岩亏握的样空毁子, 其实是 :

my ( $newarr, $n ) = ( 1, 2 ) # 後面的忽略

最後:

$newarr = 1

$n = 2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12536784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存