perl程序中shift的用法

看到有些perl程序写子程序submysub{my$pk=shift;}这里新定义的变量$pk,为什么要直接用shift,这里的shift起到什么作用?我只知道shift... 看到有些perl程序写子程序
sub mysub
{
my $pk=shift;
}

这里新定义的变量$pk,为什么要直接用shift,这里的shift起到什么作用?我只知道shift是从数组开头移除数据的,这里的作用是什么呢?
还是不太明白哦,能否举个小例子?
展开
 我来答
centipedecn
推荐于2017-10-09 · TA获得超过232个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:267万
展开全部
shift ARRAY
shift

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

如果省略了 ARRAY,那么该函数在子过程和格式枯兆的词法范围里移动 @_;
它在文件范围(通常是主程序)里移动 @ARGV。

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

sub marine {
my $fathoms = shift; # 深度
my $fishies = shift; # 鱼的数量
my $o2 = shift; # 氧气问题
# ...
}

总之就是shift没有数组作为参数时,就是移动@_这个默认的羡世参数。
perl里经常用这兄败肢种缺省方法的。
百度网友af9de30
2009-02-11 · TA获得超过358个赞
知道答主
回答量:67
采纳率:0%
帮助的人:121万
展开全部
通俗的说,不带变量的shift就是不断读出:传入函数的参数

例如:调大猛用 mysub(穗纳'a' , 'b' , 'c')后

$pk = shift的结果就是 pk里面存入了 'a' 这个值

如果下面还有语句例如:

$pk2 = shift 那么滚族桥pk2里面就存入了 'b' 这个值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式