我正在传递一些未定义的没有.数组到perl中的子程序我想在子程序中得到这些单独的数组,所以我可以运行循环.但由于我无法如此,所以我尝试传递数组的数量.但是因为我们可以使用shift从数组中删除单个元素,我们可以对数组执行相同的操作,即是否存在类似于Shift for array的函数.
sub iFrame
{
my $count=shift @_;
for (my $i=1;$i<=$count;$i++)
{
my @iFrame =@_; #need to remove this @iFrame each time
print qq[<iframe src="$iFrame[0]" width="$iFrame[1]"
height="$iFrame[2]" frameborder="$iFrame[3]" name="$iFrame[4]"></iframe>];
# and some other code
}
Run Code Online (Sandbox Code Playgroud)
一个更好的解决方案是,如果我能够在不传递$ count数组的情况下做同样的事情.
小智 5
最好的方法是传递对数组的引用,然后在子例程中取消引用它.像这样:
use strict;
my @array = qw(a b c);
mysub(\@array);
sub mysub
{
my @array = @{$_[0]};
foreach (@array)
{
print $_
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |