【发布时间】:2014-07-04 09:44:48
【问题描述】:
我将一个数组作为参考传递给一个子。在那里我必须为其添加值,但它不起作用。我的代码是:
my @scalarArray1 = ();
sub CompareScalers() {
fillScalarArray( $_[0], \@scalarArray1 ); #pass arrays by ref
}
sub fillScalarArray() {
my $filename = $_[0]; #first file name as input file
open( my $fh, '<:encoding(UTF-8)', $filename ) or die "Could not open file '$filename' $!";
my @array = @{ $_[1] };
while ( my $row = <$fh> ) {
push( @array, $row );
}
}
while循环结束时数组大小的调试打印如下:
DB<29> p $#scalarArray1
-1
DB<30> p $#array
1551
【问题讨论】:
-
为什么你 prototyped 你的潜艇允许每个人的参数为零?这似乎在最坏的情况下是错误的,在最好的情况下是误导性的。
标签: arrays perl reference dereference