develooper Front page | perl.perl5.porters | Postings from June 2012

[perl #113554] my() with empty list causes weird error

Thread Previous | Thread Next
Father Chrysostomos via RT
June 25, 2012 08:33
[perl #113554] my() with empty list causes weird error
Message ID:
On Mon Jun 25 07:29:17 2012, rurban wrote:
> On Sun Jun 24 22:44:27 2012, doy wrote:
> > Fixed in 8b8c1fb. It looks like this was a bug that was fixed during 
> the
> > course of MAD development, but was added back into the core with 
> #ifdef
> > PERL_MAD just because it was different from the existing core code.
> > 
> > (Also, for future reference: 'stub' is the name of the internal perl
> > opcode which generates the '()' construct. See �perl -MO=Concise -
> E'my
> > @x = ()'� for instance.)
> I disagree.
> The error message is not weird, it is consistent with all perls,

Not mad builds.

> and it 
> should be an error.

Why?  If my can take a list, why not an empty one?

> If the compiler detects an invalid declaration it 
> should help the author and not silently allow to do nothing.

What is invalid about an empty list?

> Re the consistency argument: Why allow now empty declarations? This 
> makes it inconsistent.
> Why should "my ();" parse correctly?
> Why should "my;" parse correctly? Both are clearly syntax errors.
> $ perl -e"my;"
> syntax error at -e line 1, near "my;"

That is consistent with this:

$ perl -le 'sort {$a<=>$b} ()'
$ perl -le 'sort {$a<=>$b}'
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.


Father Chrysostomos

via perlbug:  queue: perl5 status: resolved

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About