in reply to Doubley surprised by fat commas

here what B::Deparse sees, comments added
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__

update

°) yep already discussed here => gist: multiple "empty" commas are ignored

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery