perl程序中shift的用法
看到有些perl程序写子程序submysub{my$pk=shift;}这里新定义的变量$pk,为什么要直接用shift,这里的shift起到什么作用?我只知道shift...
看到有些perl程序写子程序
sub mysub
{
my $pk=shift;
}
这里新定义的变量$pk,为什么要直接用shift,这里的shift起到什么作用?我只知道shift是从数组开头移除数据的,这里的作用是什么呢?
还是不太明白哦,能否举个小例子? 展开
sub mysub
{
my $pk=shift;
}
这里新定义的变量$pk,为什么要直接用shift,这里的shift起到什么作用?我只知道shift是从数组开头移除数据的,这里的作用是什么呢?
还是不太明白哦,能否举个小例子? 展开
2个回答
展开全部
shift ARRAY
shift
这个函数把数组的第一个值移出并且返回它,然后把数组长度减一并且把所有的东西都顺移。如果在数组中不再存在元素,它返回 undef。
如果省略了 ARRAY,那么该函数在子过程和格式的词法范围里移动 @_;
它在文件范围(通常是主程序)里移动 @ARGV。
子过程通常以拷贝它们的参数到词法变量里开始,而 shift 可以用于这个目的:
sub marine {
my $fathoms = shift; # 深度
my $fishies = shift; # 鱼的数量
my $o2 = shift; # 氧气问题
# ...
}
总之就是shift没有数组作为参数时,就是移动@_这个默认的参数。
perl里经常用这种缺省方法的。
shift
这个函数把数组的第一个值移出并且返回它,然后把数组长度减一并且把所有的东西都顺移。如果在数组中不再存在元素,它返回 undef。
如果省略了 ARRAY,那么该函数在子过程和格式的词法范围里移动 @_;
它在文件范围(通常是主程序)里移动 @ARGV。
子过程通常以拷贝它们的参数到词法变量里开始,而 shift 可以用于这个目的:
sub marine {
my $fathoms = shift; # 深度
my $fishies = shift; # 鱼的数量
my $o2 = shift; # 氧气问题
# ...
}
总之就是shift没有数组作为参数时,就是移动@_这个默认的参数。
perl里经常用这种缺省方法的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询