2014-01-15 43 views
1

我想串聯一個標量與數組名稱,但不知道該怎麼辦。 可以說,我們有兩個爲環(嵌套在其它內部的一個)等連接標量與數組名稱

for ($i = 0; $i <= 5; $i++) { 
    for ($k = 0; $k <=5; $k++) { 
     $array[$k] = $k; 
    } 
} 

我想創建5個陣列與名字,如@array1@array2@array3等在每個陣列的端部的數字表示的$i當值正在創建數組。 有沒有辦法做到這一點?

感謝

回答

1

如果你的意思是創建實際變量,一方面,它是一個壞主意,和另一個,沒有點。你可以簡單地訪問一個變量而不用創建或聲明它。這是一個糟糕的主意,因爲它正是一種散列,而且沒有任何缺點。

my %hash; 
$hash{array1} = [ 1, 2, 3 ]; 

那裏,現在你已經創建了一個數組。要訪問它,這樣做:

print @{ $hash{array1} }; 

混雜鍵(名字)可以動態創建,就像你想要的,所以很容易創建5個不同的名稱,並給它們賦值。

for my $i (0 .. 5) { 
    push @{ $hash{"array$i"} }, "foo"; 
} 
1

當字符用作變量或數組/散列名稱時,需要將字符添加到字符中。

嘗試這種情況:

for ($i = 0; $i <= 5; $i++){ 
    for ($k = 0; $k <=5; $k++){ 
     ${"array$k"}[$k] = $k; 
    } 
} 
print "array5[4] = $array5[4] 
array5[5] = $array5[5]\n"; 

array5 [4] =

array5 [5] = 5

+0

不能與工作['strict'](HTTP://perldoc.perl .ORG/strict.html)。改用散列。 –