Raku kurss / Pamati / Izpildes plūsmas pamati / Nosacījumu pārbaudes / Virkņu salīdzināšana

Tests 2 — nosacījums if

Izlabojiet programmu un atbildiet uz jautājumu.

.my $password = prompt 'Enter your password: ';
.
eq =if $password ␣␣ '*&(#&$#Y' {
.    say 'Correct';
.}
.else {
.    say 'Incorrect';
.}

Ar = pārbaudē — ko šī programma dara?

Vienmēr izdrukā ‘Correct’Jūsu atbilde:  (: Vienmēr izdrukā ‘Correct’, Vienmēr izdrukā ’Incorrect’, Izdrukā ’Correct’ pareizām parolēm un ‘Incorrect’ nepareizām, Izdrukā ’Incorrect’ pareizām parolēm un ’Correct’ nepareizām :)
Programma vienmēr izdrukā ’Correct’, jo $password = ’*&(#&$#Y’ ir piešķīrums, kas mainīgajam $password uzstāda jaunu vērtību. Tā kā vērtība nav ne nulle, ne tukša virkne, tā tiek uzskatīta par True. Parole, ko ievada lietotājs, šajā gadījumā netiek pārbaudīta nemaz.

Ja ierakstīsiet ==, programma salūzīs, jo mēģinās virknes (lietotāja paroli un pareizo paroli) pārvērst skaitļos un neizdosies.

Kursa navigācija

Tests 1 — virkņu salīdzināšana   |   Trīsvērtīgais operators