in reply to use of parentheses around a variable
my $var is a scalar.
my ($var) is a list (of one scalar) equivalent to (my $var).
The context of the RHS of an assignment operator is determined by the LHS of the operator.
An array in scalar context evaluates to the number of elements in the array.
An array in list context evaluates to a list of its elements.
For example,
sub test { my $var1 = @_; my ($var2) = @_; (my $var3) = @_; my ($var4, $var5) = @_; (my $var6, my $var7) = @_; print("my \$var1 = \@_; -> $var1\n"); print("my (\$var2) = \@_; -> $var2\n"); print("(my \$var3) = \@_; -> $var3\n"); print("my (\$var4, \$var5) = \@_; -> $var4, $var5\n"); print("(my \$var6, my \$var7) = \@_; -> $var6, $var7\n"); } test('abc', 'def');
my $var1 = @_; -> 2 my ($var2) = @_; -> abc (my $var3) = @_; -> abc my ($var4, $var5) = @_; -> abc, def (my $var6, my $var7) = @_; -> abc, def
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: use of parentheses around a variable
by perlfan99 (Sexton) on Jun 24, 2008 at 06:01 UTC | |
by ikegami (Patriarch) on Jun 24, 2008 at 06:20 UTC | |
by massa (Hermit) on Jun 24, 2008 at 10:32 UTC |