=:= pruebas si dos contenedores (variables o elementos de arrays o hashes) son alias, es decir, si se cambia, lo hace otro cambio así?
my $x;
my @a = 1, 2, 3;
# $x =:= @a[0] is false
$x := @a[0];
# now $x == 1, and $x =:= @a[0] is true
$x = 4;
# now @a is 4, 2, 3
cuanto a los demás: === pruebas si dos referencias apuntan al mismo objeto, y eqv pruebas si dos cosas son estructuralmente equivalentes. Entonces [1, 2, 3] === [1, 2, 3]
será falso (no la misma matriz), pero [1, 2, 3] eqv [1, 2, 3]
será verdadero (misma estructura).
leg
compara cadenas como Perl 5 de cmp
, mientras que Perl 6 cmp
es más inteligente y comparará números como <=>
y cadenas como leg
.
13 leg 4 # -1, because 1 is smaller than 4, and leg converts to string
13 cmp 4 # +1, because both are numbers, so use numeric comparison.
Finalmente ~~
es el "partido inteligente", que responde a la pregunta "hace $x
partido $y
". Si $y
es un tipo, es un tipo de verificación. Si $y
es una expresión regular, es una coincidencia de expresiones regulares, y así sucesivamente.
¿Sabías que ... '' es también un operador válido? –
¿Por qué hay temor a la complejidad? No necesita usar todas las funciones. JUst aprenda lo que necesita. – Aftershock