Kev*_*vin 4 arrays perl subroutine
我知道这可能是一个简单的修复,但我无法通过谷歌找到答案并在这里搜索问题.
我的目标是将多个数组传递给一个子程序,该子程序只是单独遍历每个数组,并在每个数组之前和之后打印一些内容.
是)我有的:
@A1 = (1, 2, 3);
@A2 = (4, 5, 6);
printdata(@A1, @A2) ;
sub printdata {
foreach(@_) {
print "$_" ;
print "@@@"
}
}
Run Code Online (Sandbox Code Playgroud)
我想要得到的是:
123 @@@ 456 @@@
相反,它将两个数组视为一个并迭代数组中的每个变量,将每个变量后面的分隔符放在整个数组之后.
1 @@@ 2 @@@ 3 @@@等.....
我不知道如何让子程序将数组视为单独的而不是一个.
任何帮助将不胜感激!
您需要将数组作为引用传递:
@A1 = (1, 2, 3);
@A2 = (4, 5, 6);
printdata(\@A1, \@A2) ;
sub printdata {
foreach(@_) {
print @$_ ;
print "@@@"
}
}
Run Code Online (Sandbox Code Playgroud)
子调用将数组扩展为标量列表,然后将其传递给@_变量中的sub .例如:
printdata(@A1, @A2);
Run Code Online (Sandbox Code Playgroud)
等于:
printdata(1,2,3,4,5,6);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |