27 9月 2007

[Perl] Sub function傳入兩個以上的Array的問題...

sub FUNC{
foreach(@_){
print "$_n";
}
}
my @zzz1 = split(/ /,"ab1 cd1 ef1");
my @zzz2 = split(/ /,"ab2 cd2 ef2");

FUNC(@zzz1, @zzz2);

原本Perl的sub function傳入多個參數是允許的
但是它會自動將傳入的參數存成@_的Array
所以若傳入兩個Array當參數
則在Sub FUNC中會將這兩個Array視為一個Array...
這樣就會產生問題了...

上面的程式碼就是將@zzz1,@zzz2兩個Array傳入sub FUNC
而sub FUNC會將這兩個Array存至@_中, 視為同一個Array

沒有留言: