Curso de Raku / Esenciales / Fundamentos del control de flujo / Controles condicionales / Comparación de cadenas

Quiz 2 — la condición en if*

Corrige el programa y responde la pregunta.

.my $password = prompt 'Introduce tu contraseña: ';
.
eq =if $password ␣␣ '*&(#&$#Y' {
.    say 'Correcto';
.}
.else {
.    say 'Incorrecto';
.}

Con el = en la prueba, ¿qué hace este programa?

Siempre imprime ‘Correcto’Tu respuesta:  (: Siempre imprime ‘Correcto’, Siempre imprime ‘Incorrecto’, Imprime ‘Correcto’ para contraseñas correctas e ‘Incorrecto’ para incorrectas, Imprime ‘Incorrecto’ para contraseñas correctas y ‘Correcto’ para incorrectas :)
El programa siempre imprime ‘Correcto’ porque $password = ’*&(#&$#Y’ es una asignación que establece el nuevo valor de la variable $password. Como el valor no es ni cero ni una cadena vacía, se considera True. La contraseña que el usuario introduce nunca se verifica en este caso.

Si escribes ==, entonces el programa fallará al intentar convertir las cadenas (la contraseña del usuario y la contraseña correcta) a números y fallará.

Quiz 1 — Comparar cadenas   |   Operador ternario