我是Perl新手,很好奇@{$list_ref}
和@$list_ref
是否完全等价。
他们似乎是可以互换的,但我很紧张,有一些微妙的事情,我可能会失踪。
我是Perl新手,很好奇@{$list_ref}
和@$list_ref
是否完全等价。
他们似乎是可以互换的,但我很紧张,有一些微妙的事情,我可能会失踪。
是的,它们是等价的。当表达式不仅仅是一个简单的标量变量时,需要大括号,例如,
push @{ $foo{$bar} } => "baz";
更多详细信息,请参阅documentation on references的Using References部分。标准的Perl文档还包括有关使用引用几个教程:
我总是发现它有用请记住,外括号不是语法魔术,它们只是一个返回引用的块。块内的表达式可以是返回参考的任何内容:
$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
推荐阅读:'perldoc perlreftut'。几乎所有你需要知道的关于参考的非常简单的作品,以便你可以自信地学习:) – hobbs 2009-12-09 23:25:24
@ hobbs这是我第二次见到perlreftut提到。我想我最好读它。 :-) – 2009-12-09 23:35:12
@hobbs +1;还有perllol:http://perldoc.perl.org/perllol.html – 2009-12-09 23:41:11