2014-02-13 63 views
0

上午將一個數組和一個標量傳遞給一個函數,以檢查該數組是否爲數組的一部分,如果不是數組的一部分,則將數組推入數組。爲了參考目的,它必須顯示的是在推它時必須顯示數組的名稱。這裏是我的代碼Perl:打印傳遞給子例程的數組的名稱

use v5.10.1; 
use strict; 
use warnings; 

my @ARRAY1 = qw/This is array of backup /; 
my @ARRAY2; 


my $value = "version.xml" ; 


sub CheckPush($$) 
{ 

my $val = shift (@_); 
my $array_ref= shift (@_); 

    unless ($val ~~ @$array_ref) 
    { 
     print "$val is going to push to array \n"; 
     push(@$array_ref,$val); 
    } 
return (@$array_ref); 
} 

@ARRAY1 = CheckPush($value,\@ARRAY1); 
print "out \n"; 
foreach $_ (@ARRAY1) { 
print "$_ \n"; 
} 

@ARRAY2 = CheckPush ($value,\@ARRAY2); 
print "out2 \n"; 
foreach $_ (@ARRAY2) { 
print "$_ \n"; 
} 

出放應該像下面

$val is going to push Array (@ARRAY1) 
$val is going to push Array (@ARRAY2) 

回答

1

與基準一起傳遞數組的名稱;這並不難。

人們使用源代碼過濾器或PadWalker :: var_name做類似的事情,但這不是一個好主意。

+0

感謝我的想法與傳遞數組名稱是否有任何方法來獲得數組的名稱 – Scg

+0

錯誤,我說過(至少在有限的情況下,如您顯示的那個;沒有一般的目的答案,這是它不是一個好主意的原因之一) – ysth

相關問題