Mientras leo e intento el emparejamiento inteligente de firmas, me encuentro con algo extraño.
Ejecutando los siguientes pares de firmas de smartmaching:
my @sigs = :($a, $b), :($a, @b), :($a, %b);
my @signatures_to_check = :($, $), :($, @), :($, %);
my $c = 0;
for @sigs -> $sig {
for @signatures_to_check -> $s {
$c++;
if $sig ~~ $s {
say " [ $c ] " ~ $sig.gist ~ ' match ' ~ $s.gist;
next;
}
say " [ $c ] " ~ $sig.gist ~ ' do NOT match ' ~ $s.gist;
}
say "\n" ~ '#' x 40 ~ "\n";
}
Tengo los siguientes resultados:
[ 1 ] ($a, $b) match ($, $)
[ 2 ] ($a, $b) do NOT match ($, @)
[ 3 ] ($a, $b) do NOT match ($, %)
########################################
[ 4 ] ($a, @b) match ($, $)
[ 5 ] ($a, @b) match ($, @)
[ 6 ] ($a, @b) do NOT match ($, %)
########################################
[ 7 ] ($a, %b) match ($, $)
[ 8 ] ($a, %b) do NOT match ($, @)
[ 9 ] ($a, %b) match ($, %)
He intentado explicarme los casos [4] y [7] pero he fallado.
¿Alguien me lo puede explicar?
fuente