D:\tmp\pm>perl -MO=Deparse print "a"=> =>"c"; print "d",,"e"; print ,"f"; print =>"d"; __END__ print 'a', 'c'; print 'd', 'e'; print($_), '???'; # comma seen as scalar comma separator '???', '???'; # "print" seen as hash-key, void constants fold +ed away __DATA__ D:\tmp\pm>perl -MO=Deparse print (, "b"); print (=> "g"); __END__ syntax error at - line 1, near "print (," syntax error at - line 2, near "print (=>" - had compilation errors. __DATA__
(I hope print as pseudo-method of file-handles was not too magic for this test.)
IIRC one is supposed to enter undef explicitly when wanted, like when ignoring elements in list assignments.
I think what's happening here is a form of flattening where leading commas at RHS are ignored.°
D:\tmp\pm>perl -MO=Deparse print "a"=> => => "c"; __END__ print 'a', 'c'; __DATA__
°) yep already discussed here => gist: multiple "empty" commas are ignored
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
In reply to Re: Doubley surprised by fat commas (updated)
by LanX
in thread Doubley surprised by fat commas
by GrandFather
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |