Perl operateri za usporedbu ponekad mogu biti zbunjujuće za nove Perlove programere. Zbunjenost proizlazi iz činjenice da Perl zapravo ima dva skupa operatora za usporedbu - jedan za usporedbu numeričke vrijednosti i jedna za usporedbu stringova američkog standardnog koda za razmjenu informacija (ASCII).
Budući da se operateri za usporedbu obično koriste za kontrolu protoka logičkog programa i donošenje važnih odluka, koristeći pogrešan operator za vrijednost koju testirate može dovesti do bizarnih pogrešaka i sati uklanjanja pogrešaka, ako niste oprezni.
Ne zaboravite uhvatiti ono što je napisano pri dnu ove stranice za neke stvari u zadnjem trenutku koje ćete zapamtiti.
Jednako, a ne jednako
Najjednostavniji i vjerojatno najčešće korišteni operateri usporedbe testiraju je li jedna vrijednost jednaka drugoj vrijednosti. Ako su vrijednosti jednake, test vraća vrijednost true, a ako vrijednosti nisu jednake, test vraća false.
Za testiranje jednakosti dva numerički vrijednosti, koristimo operater usporedbe
==. Za testiranje jednakosti dva niz vrijednosti, koristimo operater usporedbe ekv (Jednak).Evo primjera i jednog i drugog:
if (5 == 5) {print "== za numeričke vrijednosti \ n"; }
if ('moe' eq 'moe') {print "eq (EQual) za vrijednosti niza \ n"; }
Testiranje za suprotno, a ne jednako, vrlo je slično. Ne zaboravite da će se ovaj test vratiti pravi ako su provjerene vrijednosti ne jednaki jedni drugima. Da vidim ima li dva numerički vrijednosti su ne jednake jedni drugima, koristimo operater usporedbe !=. Da vidim ima li dva niz vrijednosti su ne jednake jedni drugima, koristimo operater usporedbe NE (Nejednak).
if (5! = 6) {print "! = za numeričke vrijednosti \ n"; }
if ('moe' ne 'curly') {print "ne (Nije jednako) za vrijednosti niza \ n"; }
Veći od, veći od ili jednak
Sada pogledajmo veće od operateri za usporedbu. Pomoću ovog prvog operatera možete testirati je li jedna vrijednost veća od druge. Da vidim ima li dva numerički vrijednosti su veće jedna od druge, koristimo operater usporedbe >. Da vidim ima li dva niz vrijednosti su veće jedna od druge, koristimo operater usporedbe gt (Više nego).
if (5> 4) {print "> za numeričke vrijednosti \ n"; }
if ('B' gt 'A') {print "gt (više nego) za vrijednosti niza \ n"; }
Možete se testirati i za veći ili jednak, što izgleda vrlo slično. Imajte na umu da će se ovaj test vratiti pravi ako su testirane vrijednosti jednake jednakoj ili ako je vrijednost na lijevoj strani veća od vrijednosti na desnoj strani.
Da vidim ima li dva numerički vrijednosti su veće ili jednake jednake, koristimo operater usporedbe >=. Da vidim ima li dva niz vrijednosti su veće ili jednake jednake, koristimo operater usporedbe ge (Više nego jednako).
if (5> = 5) {print "> = za numeričke vrijednosti \ n"; }
if ('B' ge 'A') {print "ge (veće od jednake za) za vrijednosti niza \ n"; }
Manje od, manje ili jednako
Postoji mnoštvo operatora za usporedbu koje možete koristiti za određivanje logičkog toka vaših Perl programa. Već smo raspravljali o razlici između Perlovih numeričkih operatora za usporedbu i Perl operatora za usporedbu niza, što može izazvati zabunu kod novih Perl programera. Također smo naučili kako znati jesu li dvije vrijednosti jednake ili nisu jednake, a naučili smo i kako znati jesu li dvije vrijednosti veće ili jednake jednake.
Pogledajmo manje od operateri za usporedbu. Pomoću ovog prvog operatera možete testirati je li jedna vrijednost manje od još jedna vrijednost. Da vidim ima li dva numerički vrijednosti su manje od koristimo usporedni operator <. Da vidim ima li dva niz vrijednosti su manje od koristimo usporedni operator lt (Manje od).
if (4 <5) {print "
if ('A' lt 'B') {print "lt (Manje od) za nizove \ n"; }
Možete se testirati i za, manje ili jednako, što izgleda vrlo slično. Ne zaboravite da će se ovaj test vratiti pravi ako su testirane vrijednosti jednake jednakoj ili ako je vrijednost na lijevoj strani manja od vrijednosti na desnoj strani. Da vidim ima li dva numerički vrijednosti su manje ili jednako koristimo usporedni operator <=. Da vidim ima li dva niz vrijednosti su manje ili jednako koristimo usporedni operator le (Manje-jednako jednakom).
if (5 <= 5) {print "<= za numeričke vrijednosti \ n"; }
if ('A' le 'B') {print "le (Manje-jednako-to) za vrijednosti niza \ n"; }
Više informacija o operaterima za usporedbu
Kad govorimo o tome da su vrijednosti niza jednake jednakoj drugoj, mislimo na njihove ASCII vrijednosti. Dakle, velika slova su tehnički manja od malih slova, a što je veće slovo u abecedi, to je veća ASCII vrijednost.
Obavezno provjerite svoje ASCII vrijednosti ako pokušavate donositi logičke odluke na temelju žica.