On 26 June 2012 09:30, demerphq <demerphq@gmail.com> wrote: > On 25 June 2012 22:51, Father Chrysostomos via RT > <perlbug-followup@perl.org> wrote: >> On Mon Jun 25 13:38:28 2012, rurban wrote: >>> On Mon, Jun 25, 2012 at 10:33 AM, Father Chrysostomos via RT >>> <perlbug-followup@perl.org> wrote: >>> > 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. >>> >>> Then make MAD consistent with the default non-mad. >> >> That could break code for anyone who is using mad. >> >>> >>> >> and it should be an error. >>> > >>> > Why? If my can take a list, why not an empty one? >>> >>> my is perl's declaration syntax. It expects one or many lexical >>> variable names, not zero. >>> lexicals are our default, non lexicals are warned. >>> Empty declarations are syntax errors, if "my ();" or "my ;" >> >> I’m afraid your answer is tautological. Why *shouldn’t* it be allowed >> to take an empty list? >> >> Allowing an empty list provides a clear benefit and makes things more >> consistent. What problems could it cause? > > It would make debugging difficult. Consider generated code, etc. > > I am with Reini on this one, and ill drag in Larry too. Im pretty sure > if Larry thought that > > my (); > > should be legal it already would be. > > That my behaves "a little different" isn't new, we allow the special > use of undef in a my() declaration: > > my ($x,undef,$y)= @l; > > I contend that allowing my (); would make debugging difficult. Ill just add I have had Perl politely tell me my code generator was broken because it produced my (); and it was right. Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"Thread Previous | Thread Next