代码之家  ›  专栏  ›  技术社区  ›  Frank Krueger

在Perl中,@$list_ref和@$list_ref等效吗?

  •  5
  • Frank Krueger  · 技术社区  · 15 年前

    我刚接触Perl,很好奇 @{$list_ref} @$list_ref 完全等同。

    它们似乎是可以互换的,但我很紧张我可能会错过一些微妙的事情。

    2 回复  |  直到 15 年前
        1
  •  10
  •   Community CDub    8 年前

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

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

    有关详细信息,请参见 Using References 剖面图 documentation on references . 标准Perl文档还包括一些关于使用参考的教程:

        2
  •  6
  •   converter42    15 年前

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

    $ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
    Do something here.
    orange