perl push的用法及子程式傳回值的反思

來源:互聯網
上載者:User

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 average\n";
@the_number_input=<STDIN>;
@the_number_larger=above_average(@the_number_input);
print "@the_number_larger\n";
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.