我知道這可能是一個簡單的修復,但我一直無法通過google找到答案,並通過這裏的問題搜索。將數組傳遞給分別打印每個數組的子例程
我的目標是將多個數組傳遞給子例程,該子例程分別遍歷每個數組,並在每個數組之前和之後打印每個數組。
我有什麼:
@A1 = (1, 2, 3);
@A2 = (4, 5, 6);
printdata(@A1, @A2) ;
sub printdata {
foreach(@_) {
print "$_" ;
print "@@@"
}
}
什麼,我試圖得到的是:
123 @@@ 456 @@@
而是其治療兩個陣列爲一體,並通過每個迭代數組中的變量,將每個變量之後的分隔符放在整個數組中。
1 @@@ 2 @@@ 3 @@@等.....
我不知道怎麼去子程序治療陣列作爲單獨的,而不是一個。
任何幫助將不勝感激!
您發現的是Perl中的List上下文。列表是傳遞給方法的東西(幾乎在任何時候你都使用paren和逗號)。它們會自動將它們內部的任何東西扁平化 - 數組或散列。將參數傳遞給函數時(例如,可以在數組中構建所有參數,然後將其作爲列表傳遞給函數)或整理來自多個源的數據(例如組合多個哈希或數組),這可能非常方便,但是對於大多數程序員來說,「背景」這個概念是新的,因此可以讓人們跳出來。 :) –