2015-12-18 47 views
0

我知道數組引用,但在Perl中,多維數組是一個引用其他一維數組的一維數組,任何人都可以用一個例子來解釋這個嗎?爲什麼參考其他一維數組的一維數組稱爲多維數組?

+0

你有一個特定的代碼示例來形容你是什麼意思?我有一個難以置信的困難時間解析你的問題。 –

+0

@Matt Jacob:下面的代碼是我的答案,我在詢問任何有關二維數組解釋的示例代碼 – SSN

回答

2
my @a = ("a", "b", "c"); 
my @x; 
$x[4] = \@a; 
say $x[4]->[2]; # c 

取消引用(->)隱含「索引之間」,如果省略。如你所見,這可以用來創建多維數組。


通常使用匿名數組。 [ ... ]構造一個數組並返回對它的引用。

my @x; 
$x[4] = [ "a", "b", "c" ]; 
say $x[4][2]; # c 

通常還會讓Perl通過名爲「autovivification」的功能自動創建數組和參考。

my @x; 
$x[4][2] = "c"; 
say $x[4][2]; # c 

這是因爲

$x[4][2] = "c"; 

是短期的

$x[4]->[2] = "c"; 

SCALAR->[EXPR1] = EXPR2; 

是有效

(SCALAR //= [ ])->[EXPR1] = EXPR2; 

所以

$x[4]->[2] = "c"; 

是有效

($x[4] //= [ ])->[2] = "c"; 
+0

現在我明白了謝謝你! – SSN

+0

加到我的回答 – ikegami

+0

@kegami :($ x [4] // = []) - > [2] =「c」;我無法理解這條線可以解釋這條線嗎? – SSN