perl - 使用带括号和只有一个变量的 my

标签 perl

我有时会看到这样的 Perl 代码:

my ( $variable ) = blah....

在单个变量周围加上括号有什么意义?我认为括号只在声明多个变量时使用,例如:
my ( $var1, $var2, $var3 ) = blah...

最佳答案

出现差异时有几种情况:

  • 阵列 在右侧
    my @array = ('a', 'b', 'c');
    my  $variable  = @array;           #  3   size of @array
    my ($variable) = @array;           # 'a'  $array[0]
    
  • 列表在右侧
    my  $variable  = qw/ a b c d /;    # 'd'  last  item of the list
    my ($variable) = qw/ a b c d /;    # 'a'  first item of the list
    
  • 带有变量( 数组/标量 )返回值的子程序
    sub myFunction {
      ...
      return (wantarray() ? @array : $scalar);
    }
    my  $variable  = myFunction(...);  # $scalar   from the subroutine
    my ($variable) = myFunction(...);  # $array[0] from the subroutine
    
  • 关于perl - 使用带括号和只有一个变量的 my,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10031455/

    相关文章:

    perl - “sub main…&main();”有什么好处? Perl中使用方法(子主模式)?

    perl - File::Copy 报告 NFS 写入错误错误?

    regex - 为什么 `stoutest` 不是有效的正则表达式?

    perl - Net::SCP/Net::SCP::Expect - 如何处理密码与 key 认证

    perl - 作为数组返回的Moose ArrayRef属性

    mysql - 使用utf8从perl脚本访问latin1 mysql数据库

    linux - 为 mod_perl 更改 perl

    perl - Perl 5 中存在哪些伪运算符?

    perl - 使用perl获取AD组的用户

    perl - IO::Pipe - close(<handle>) 未设置 $?