http://www.perlmonks.org?node_id=769972


in reply to Strange given/when deparsing

Is this a bug of B::Deparse?

Yes, although it *might* have already been fixed in forthcoming 5.10.1.

You can see the difference with the more precise (but verbose) B::Concise:

g <2> smartmatch sK*/2 ->h d <0> padsv[$_:46,51] s ->e f <1> int[t4] sK/1 ->g e <0> padsv[$_:46,51] s ->f
f <2> smartmatch sK*/2 ->g d <0> padsv[$_:46,51] s ->e e <0> padsv[$_:46,51] s ->f

when(int) { say 'match' } # int($_) ~~ $x

You have the order backwards. It's $x ~~ int($_). (Well, $_ ~~ int($_) really.)