2017-12-02 11 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?我不明白「push」返回的值

+2

你已經有了一個很好的答案,但是我可能會問你期望在@ @ array2中? – PerlDuck

回答

8
perldoc -f push

狀態:

返回下列完成的推數組中元素的數目。

  1. @_開始有四個要素,因爲你有4個參數調用你的子。
  2. shift@_數組中的第一個元素。 shift返回已移除的元素。 @_數組現在包含3個元素。
  3. push零到末尾的@_數組,其中又包含4個元素。 push返回元素的數量,並將其分配給@array2