2013-04-05 93 views
0
use strict; 
my @a; 
my @b =(); 
@a = (3, 4); 

push @b, [@a]; 

my @c = @b[0]; 
print @c; 

如何正確檢索@c?它告訴我標量值@b [0]最好寫成$ b [0]。從數組數組中檢索數組?

(這不是我的隱私的原因真正的代碼,但在實際的代碼我有這樣的事情:

my @a = @{$b[$i]}; 
print @a; 

這是說「未初始化值的使用,」但還是打印什麼它應該。

回答

3

如果你有一個數組引用存儲在$b[0] - 這是你的情況 - 那麼你檢索它作爲

$ref = $b[0] # I just want it as a reference 

@arr = @{$b[0]} # I want it as a (new) array 

$elt = $b[0][1] # I want to directly access the second element 
$elt = $b[0]->[1] # alternative syntax, same thing. 
+0

編輯:沒關係,問題已解決。 – user1126849 2013-04-05 08:51:37

2

有關的語法的數組訪問細節參見perldata

@c[0]是單個元件陣列片(!) $c[0]是正確

$c[0]->[0]是「3」,$c[0]->[1]爲「4」

,詳細瞭解數組的數組看到perldsc和perllol