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

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

Thread Previous | Thread Next
From:
Father Chrysostomos via RT
Date:
June 25, 2012 08:33
Subject:
[perl #113554] my() with empty list causes weird error
Message ID:
rt-3.6.HEAD-5009-1340638397-1339.113554-15-0@perl.org
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
https://rt.perl.org:443/rt3/Ticket/Display.html?id=113554

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About