My faith in -MO=Deparse, a tool I've counted on for so long, has been severely tested recently. A few days ago ikegami pointed out errors in output from -MO=Deparse. Today I found what appears like another -MO=Deparse goof. Here's the original snippet and its output:
% perl -le '$_ = ($x) = (4, 5, 6); print'
Here is -MO=Deparse
's rendition of same:
% perl -MO=Deparse,-p -le '$_ = ($x) = (4, 5, 6); print'
($_ = ($x = (4, 5, 6)));
-e syntax OK
And, finally, here is the execution of -MO=Deparse
% perl -le '($_ = ($x = (4, 5, 6))); print($_)'
I've stared at this till my eyes hurt, so I think it's time to let fresh eyes look at it at tell me what I'm missing. ('Cause I sure hope it's me and not -MO=Deparse
that is wrong here).
Thanks for your help.
Addendum: For those not familiar with the whole -MO=Deparse thing the place to look for more info is B::Deparse, and also B and O.