5

我是 Perl 的新手,很好奇它们是否@{$list_ref}完全@$list_ref等价。

它们似乎可以互换,但我很紧张,因为我可能会遗漏一些微妙的事情。

4

2 回答 2

10

是的,它们是等价的。当表达式不仅仅是一个简单的标量变量时,您需要大括号,例如

push @{ $foo{$bar} } => "baz";

有关更多详细信息,请参阅有关参考的文档的使用参考部分。标准 Perl 文档还包括几个关于使用引用的教程:

于 2009-12-09T23:14:22.100 回答
6

我总是发现记住外大括号不是语法魔术很有帮助,它们只是一个返回引用的块。块内的表达式可以是返回引用的任何内容:

$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
于 2009-12-10T17:17:58.583 回答