in reply to Are these grouping parens or list creation parens?
Are these grouping parens or list creation parens?
There's no such thing as list-creating parens. Lists are created by commas and where they are needed. Parens override precedence, modify certain operators (e.g. = vs ()=, x vs ()x, eof vs eof(), etc), and indicate a lack of operands when empty.
I'd like to know if perl is able to avoid creating a one-element list
No.
compiles to$x = ("a","b","c");
and notpushmark const "c" list $x sassign
const "c" $x sassign
That case of a list in scalar or void context could be optimised (if it's known at compile-time), but the savings would be negligible since pushmark and list are extremely cheap operations O(1) operations.
Is this assignment: my $check = ($y eq $z); any less efficient than this? my $check = $y eq $z;
No. Their compilation produces identical outputs.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Are these grouping parens or list creation parens?
by perl5ever (Pilgrim) on Oct 02, 2009 at 16:09 UTC |