所以我得到的输入从标准输入,如:如何在perl中从STDIN创建多个多维数组?
1 2 3
4 5 6
7 6 3
4 3 2
2 3 5
2 5 1
空白行分开的矩阵,因此上述输入要创建两个多维数组...我知道了如何创建一个(下面的代码),但是如何根据用户输入的空行数量创建多个?
我不知道用户想要创建多少个数组,因此如何根据用户输入中的空行动态创建数组?
my @arrayrefs;
while(<>)
{
chomp;
my @data = split(/\s+/,$_);
push @arrayrefs, \@data;
}
for $ref (@arrayrefs){
print "[@$ref] \n";
}
或者:'my @array = map {parse_data($ _)} <>;' – Zaid 2012-02-27 12:58:25
@Zaid也可以。 – TLP 2012-02-27 13:03:43
+1。你可以将'parse_data'的主体改为'[map {[split//]} split/\ n /,shift]'而不会丢失可读性。 – flesk 2012-02-27 13:27:07