关于在perl中使用箭头符号的问题

1 perl reference

我跟随两个用perl编写的语句:

@m1 = ( [1,2,3],[4,5,6],[7,8,9] ); # It is an array of references.
$mr = [ [1,2,3],[4,5,6],[7,8,9] ]; # It is an anonymous array. $mr holds reference.
Run Code Online (Sandbox Code Playgroud)

当我尝试print:

print "$m1[0][1]\n"; # this statement outputs: 2; that is expected.

print "$mr->[0][1]\n"; #this statement outputs: 2; that is expected.

print "$mr[0][1]\n"; #this statement doesn't output anything.
Run Code Online (Sandbox Code Playgroud)

我觉得第二和第三印刷语句是一样的.但是,我没有输出第三个print语句.

谁能让我知道第三次印刷声明有什么问题?

chr*_*lck 6

这很简单.$mr是一个参考.所以你使用Arrow Operatordereference.

此外,如果你使用use warnings; use strict;,你会收到一个明显的错误信息:

Global symbol "@mr" requires explicit package name
Run Code Online (Sandbox Code Playgroud)