It's more than that. my() even counts as (my) at the grammar level.
Aside from their use of overriding precedence, their use in flow control statements, and their use in function prototypes and parameter lists, parens are syntactically significant in five places:
$x = 4; # Scalar assignment operator (sassign)
($x) = 4; # List assignment operator (aassign)
$x x 4 # String repetition operator (repeat)
($x) x 4 # Scalar repetition operator (repeat/DOLIST)
\$x, $y # The referencing isn't distributed.
\($x, $y) # The referencing is distributed.
use Mod; # Calls import.
use Mod (); # Doesn't call import.
@a = ; # Illegal
@a = (); # Stub operator
my ($x, $y) is considered the same as (my $x, my $y) in all five of those circumstances.
my ($x) = 4; # Same as: (my $x) = 4;
my ($x) x 4 # Same as: (my $x) x 4
\my ($x, $y) # Same as: \(my $x, my $y)
use Mod my(); # Same as: use Mod ();
@a = my(); # Same as: @a = ();
|