我希望通过传递4个数组来调用子程序,然后获取每个数组的第一个值,并在子程序中创建一个新数组(传递数组的第一个元素),然后返回该数组。以下是我尝试过的代码:
my @a = (97,34,6,7);
my @b = ("A", "B", "F", "D");
my @c = (5..15);
my @d = (1..10);
my @tailings = popmany ( \@a, \@b, \@c, \@d );
print @tailings;
sub popmany {
my @retlist = ();
for my $aref (@_) { #1
my $arrele = @$aref; #2
push @retlist , $arrele #3
}
return @retlist;
}
这里,我使用一个循环并获取第一个数组,在第二行中,我将整个数组分配给一个变量,认为默认情况下perl只会将数组的第一个变量存储到@arrele中。然后我将$arrele推入新数组@retlist中,很抱歉我没有参考任何笔记,所以我的过程可能是错误的。但是这给我输出了一个毫无意义的结果441110。
请解释一下这段代码如何实现。
popmany
这个名称具有双重误导性。pop
会 移除 数组的 最后一个 元素并将其返回。而popmany
则会返回数组的 第一个 值,而不会改变数组。 - TLP