如何在Perl中创建动态数组

3

我有一个情况,输入的形式为
$n 后面跟着 n 行,每行包含 n 个不同数组的元素。
例如

2  
1 2 3   
1 6   

我有两个数组,元素分别为1,2,31,6

现在我不知道N的大小。如何创建动态数组并将值存储在其中。数组可能被命名为array1、array2或其他任何方法以区分不同的数组。

$n = <STDIN>;
for ($i = 0; $i < $n; $i++) {
    $l   = <STDIN>;
    @arr = split(" ", $l);
}

请改进这段代码。

1
http://perldoc.perl.org/perldsc.html - Mat
1
Perl中没有动态数组这种东西。你可能在想多维数组。然而,存储值只是问题的一半,关键是你想用这些值做什么。 - TLP
3
Perl 数组的大小没有限制。根据您的描述,任何数组都是“动态”的。 - Oleg V. Volkov
1个回答

3

您可以使用数组嵌套来实现:

use strict;    
my @array;
while(<STDIN>) {
    my @line = split(" ", $_);
    push @array, \@line;
}

# Just to display what's inside your array:
use Data::Dumper;     
print Dumper(\@array);    

甚至可以更短:
use strict;
my @array;
push @array, [split ' ', $_] while(<STDIN>);

1
print Dumper \@array - TLP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接