2017-12-02 8 views
0
use strict; 
use warnings; 

sub maximum_value { 

    my @array = @_; 
    my @array1 = shift(@_); 
    my @array2 = push(@_, 0); 

    print "@array\n"; 
    print "@array1\n"; 
    print "@array2\n"; 

    my $i = 0; 

    foreach (@array) { 

     if ($i < $_) { 
      $i = $_; 
     } 
    } 

    print "\nMax Value is $i"; 
} 

maximum_value(10, 15, 11, 13); 

これはPerlスクリプトです。値をサブルーチンに渡して、@_に格納しています。 @array2は4と評価されるのはなぜですか?「プッシュ」が返す値を理解できません

+2

あなたはすでにすばらしい答えを得ていますが、あなたは '@ array2'にあなたが期待していることを尋ねることができますか? – PerlDuck

答えて

8

perldoc -f push状態:

完成押し、次の配列の要素数を返します。四つの要素を持つ

  1. あなた@_開始あなたは4つの引数を使用してサブを起動しているため。
  2. shift@_配列の最初の要素です。 shiftは、削除された要素を返します。 @_アレイに3つの要素が含まれるようになりました。
  3. push@_アレイの最後にゼロがあり、4つの要素が再び含まれています。 pushは要素の数を返し、@array2に割り当てます。
関連する問題