It seems to be partially working, though
(I'm reading that that you would like it to match in the list case (1, 17, 4) ~~ 17, too.)
I think it doesn't treat arrays and lists the same way (from "Smart matching in detail" in perlsyn):
$a $b Type of Match Implied Matching Code ====== ===== ===================== ============= ... Array Num array contains number grep $_ == $b, @$a ...
If you have a list instead of an array, it interprets it in scalar context, i.e. it just uses the last element, here 4:
say "second match succeeds" if ((1, 17, 4) ~~ 4);
I personally find this somewhat counterintuitive, too, but I suspect the language designers have had their reason to make it behave that way...
In reply to Re: Smart match operator support in Strawberry perl 5.10.0.1 (array vs. list)
by almut
in thread Smart match operator support in Strawberry perl 5.10.0.1
by jds17
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |