Kurso de Raku / Esencoj / Bazoj de la regofluo / Kondiĉaj kontroloj / Komparante ĉenojn
Kvizo 2 — la kondiĉo en
if
Korektu la programon kaj respondu la demandon.
| . | my $password = prompt 'Enigu vian pasvorton: '; |
| . | |
| eq = | if $password ␣␣ '*&(#&$#Y' { |
| . | say 'Ĝusta'; |
| . | } |
| . | else { |
| . | say 'Malĝusta'; |
| . | } |
Kun la = en la testo, kion faras ĉi tiu programo?
| Ĉiam presas 'Ĝusta' | Via respondo: (: Ĉiam presas 'Ĝusta', Ĉiam presas 'Malĝusta', Presas 'Ĝusta' por ĝustaj pasvortoj kaj 'Malĝusta' por malĝustaj, Presas 'Malĝusta' por ĝustaj pasvortoj kaj 'Ĝusta' por malĝustaj :) |
La programo ĉiam presas ‘Ĝusta’ ĉar
Se vi tajpas
$password =
’*&(#&$#Y’ estas asigno kiu agordas la novan valoron de
la variablo $password. Ĉar la valoro ne estas nulo nek
malplena ŝnuro, ĝi estas konsiderata Vera. La pasvorto,
kiun la uzanto enigas, neniam estas kontrolita en ĉi tiu
kazo.Se vi tajpas
==, tiam la programo rompiĝos
ĉar ĝi provas konverti la ŝnurojn (la uzanta pasvorto kaj la ĝusta
pasvorto) al nombroj kaj malsukcesas.