我是新来的Perl和很好奇是否@{$list_ref}和@$list_ref是完全等价的.
它们似乎是可以互换的,但我很紧张,有一些微妙的事情可能会让我失踪.
Gre*_*con 10
是的,他们是等同的.当表达式不仅仅是一个简单的标量变量时,你需要括号,例如,
push @{ $foo{$bar} } => "baz";
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅参考文档的" 使用参考"部分.标准的Perl文档还包括几个使用引用的教程:
我一直觉得有必要记住外括号不是语法魔法,它们只是一个返回引用的块.块内的表达式可以是返回引用的任何内容:
$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
Run Code Online (Sandbox Code Playgroud)