Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using my with parentheses and only one variable

Tags:

perl

I sometimes see Perl code like this:

my ( $variable ) = blah.... 

What is the point of putting parentheses around a single variable? I thought parentheses were only used when declaring multiple variables, like:

my ( $var1, $var2, $var3 ) = blah... 
like image 741
phileas fogg Avatar asked Apr 05 '12 15:04

phileas fogg


1 Answers

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 
like image 197
Ωmega Avatar answered Oct 04 '22 10:10

Ωmega