所以我得到的輸入從標準輸入,如:如何在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