Using my with parentheses and only one variable

前端 未结 5 807
梦谈多话
梦谈多话 2020-12-01 00:37

I sometimes see Perl code like this:

my ( $variable ) = blah....

What is the point of putting parentheses around a single variable? I thou

5条回答
  •  没有蜡笔的小新
    2020-12-01 01:38

    There are several scenarios when there is a difference:

    1. When array is on right side

      my @array = ('a', 'b', 'c');
      my  $variable  = @array;           #  3   size of @array
      my ($variable) = @array;           # 'a'  $array[0]
      
    2. When list is on right side

      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
      
    3. Subroutine with variable (array/scalar) return value

      sub myFunction {
        ...
        return (wantarray() ? @array : $scalar);
      }
      my  $variable  = myFunction(...);  # $scalar   from the subroutine
      my ($variable) = myFunction(...);  # $array[0] from the subroutine
      

提交回复
热议问题