perl push的用法及子程序返回值的反思


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 pop push shift unshift实例介绍
学习记录一下#!/usr/bin/perl-wusestrict;print'@a@b@c@d的值都为123',"n";my@a=(1..3);pop(@a);print"@a的值为@a,pop拿掉数组最右边的值n";my@b=(1..3);push(@b,'4');print"@b的值为@

perl ping检测功能脚本代码
我的第一个用于生产环境的perl脚本,虽然不是很优秀,但也迈出了扎实的一步:)领导有任务,给一批IP列表,ping每一台机器,如果没有响应就发邮件通知,通知

一行代码解决 perl输入 排序 输出问题
先来看基本的方法:chomp(@strings=STDIN);@strings=sort@strings;print"@stringsn.";上面的三行代码解决的是输入,然后排序,最后将排序后的结果输出的作用。只用