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


in reply to Re^3: Strange given/when deparsing
in thread Strange given/when deparsing

I fail to parse your answer. Maybe that's because English is not my first language.

perlsyn says:

It is always commutative, i.e. $a ~~ $b behaves the same as $b ~~ $a .
Do you mean that this behavior is going to change?

Replies are listed 'Best First'.
Re^5: Strange given/when deparsing
by ikegami (Patriarch) on Jun 09, 2009 at 16:46 UTC
    Yes, it won't be commutative in a future release. At least not in general. Some matches will work regardless of the order, but not all.
      Yes, Perl 6 gave whiplash to Perl 5 here; originally it was defined symmetrically, but we broke that after we realized it was silly to define a switch that was impossible to optimize to a jump table even if all the "when" values are small integers. The right side of a smart match is now always considered a pattern that makes its own decision how to match the left side, and it might or might not pay attention to the type of the left side to do so. In Perl 6, integer patterns always do integer comparison, and string patterns always do string comparison, regardless of the structure of the left side.