perl push的用法及子程序返回值的反思
perl push的用法及子程序返回值的反思
发布时间:2016-12-28 来源:查字典编辑
摘要:pop操作将数组的最后一个元素取出并返回:@array=5..9;$fred=pop(@array);#$fred得到9,@array现在为...

pop 操作将数组的最后一个元素取出并返回:

@array=5..9;

$fred=pop(@array); #$fred 得到 9,@array 现在为(5,6,7,8)

$barney=pop@array; #$barneygets8,@array 现在为(5,6,7)

pop@array; #@array 现在为(5,6)(7 被丢弃了)

最后一个例子中,pop 使用在"inavoidcontext",也就是说没有存放其返回值的地方。这样使用 pop 是合法的。

如果数组为空,那 pop 什么也不做(因为没有元素可以移出),并返回 undef。

你可能已注意到 pop 后可以使用或者不使用括号。这在 Perl 中是一条通用规则:如果去掉括号含义不变,那括号就是可选

的◆。和 pop 相反的操作是 push,它可以将一个元素(或者一列元素)加在数组的末尾:

◆受过相应教育的人将发现,这是同义反复。

push(@array,0); #@array 现在为(5,6,0)

push@array,8; #@array 现在为(5,6,0,8)

push@array,1..10; #@array 现在多了 10 个元素

@others=qw/9 0 2 1 0/;

push@array,@others; #@array 现在又多了 5 个元素(共有 19 个)

push 的第一个参数或者 pop 的唯一参数必须是数组变量。

复制代码 代码如下:

#!/bin/perl

sub above_average

{

$number=@_;

foreach $how(@_)

{

$total=$total+$how;

}

$the_average=$total/$number;

foreach (@_)

{

if ($_>$the_average)

{

push(@larger,$_)#这里不用赋值,数组元素的添加,直接用push就好了

}

}

@larger;#子程序的返回值,一定要有,刚开始没有写

}

print "please input several numbers,and you will get the number which is large than their averagen";

@the_number_input=<STDIN>;

@the_number_larger=above_average(@the_number_input);

print "@the_number_largern";

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新perl学习
热门perl学习
脚本专栏子分类