Perl operatorii de comparație pot fi uneori confuzi pentru noii programatori Perl. Confuzia provine din faptul că Perl are de fapt două seturi de operatori de comparație - unul pentru comparare valori numerice și una pentru compararea valorilor șirului codului standard american pentru schimbul de informații (ASCII).
Deoarece operatorii de comparație sunt de obicei folosiți pentru a controla fluxul logic de programe și pentru a lua decizii importante, utilizând operator greșit pentru valoarea pe care o testați poate duce la erori bizare și ore de depanare, dacă nu sunteți atenți.
Nu uitați să surprindeți ceea ce este scris în partea de jos a acestei pagini pentru câteva lucruri de ultim moment.
Egal, nu egal
Cel mai simplu și probabil cel mai utilizat operator de comparație testează pentru a vedea dacă o valoare este egală cu o altă valoare. Dacă valorile sunt egale, testul returnează adevărat, iar dacă valorile nu sunt egale, testul returnează fals.
Pentru testarea egalității a doi numeric
valori, utilizăm operatorul de comparație ==. Pentru testarea egalității a doi şir valori, utilizăm operatorul de comparație eq (Egal).Iată un exemplu de ambele:
if (5 == 5) {print "== pentru valori numerice \ n"; }
if ('moe' eq 'moe') {print "eq (EQual) pentru valorile șirului \ n"; }
Testarea contrariului, nu este egală, este foarte similară. Amintiți-vă că acest test va reveni Adevărat dacă valorile testate sunt nu egală între ele. Pentru a vedea dacă două numeric valorile sunt nu egală între ele, utilizăm operatorul de comparație !=. Pentru a vedea dacă două şir valorile sunt nu egală între ele, utilizăm operatorul de comparație ne (Nu este egal).
if (5! = 6) {print "! = pentru valori numerice \ n"; }
if ('moe' ne 'ondulat') {print "ne (Nu este egal) pentru valorile șirului \ n"; }
Mai mare decât, mai mare decât sau egal cu
Acum să ne uităm la mai mare ca operatori de comparație. Utilizând acest prim operator, puteți testa pentru a vedea dacă o valoare este mai mare decât o altă valoare. Pentru a vedea dacă două numeric valorile sunt mai mari unele de altele, folosim operatorul de comparație >. Pentru a vedea dacă două şir valorile sunt mai mari unele de altele, folosim operatorul de comparație gt (Mai mare ca).
if (5> 4) {print "> pentru valori numerice \ n"; }
if ('B' gt 'A') {print "gt (Greater Than) pentru valorile șirului \ n"; }
De asemenea, puteți testa mai mare sau egal cu, care arată foarte asemănător. Rețineți că acest test va reveni Adevărat dacă valorile testate sunt egale între ele sau dacă valoarea din stânga este mai mare decât valoarea din dreapta.
Pentru a vedea dacă două numeric valorile sunt mai mari sau egale între ele, folosim operatorul de comparație >=. Pentru a vedea dacă două şir valorile sunt mai mari sau egale între ele, folosim operatorul de comparație GE (Mai mare decât egală cu).
if (5> = 5) {print "> = pentru valori numerice \ n"; }
if ('B' ge 'A') {print "ge (Mai mare decât Egal-to) pentru valorile șirului \ n"; }
Mai puțin decât, mai puțin decât sau egal
Există o varietate de operatori de comparație pe care îi puteți utiliza pentru a determina fluxul logic al programelor dvs. Perl. Am discutat deja diferența dintre operatorii de comparație numerică Perl și operatorii de comparare a șirurilor Perl, ceea ce poate provoca confuzie noilor programatori Perl. De asemenea, am învățat cum să spunem dacă două valori sunt egale sau nu sunt egale între ele și am învățat să spunem dacă două valori sunt mai mari sau egale între ele.
Să ne uităm la mai puțin decât operatori de comparație. Utilizând acest prim operator, puteți testa pentru a vedea dacă există o valoare mai puțin decât o altă valoare. Pentru a vedea dacă două numeric valorile sunt mai puțin decât reciproc, folosim operatorul de comparație <. Pentru a vedea dacă două şir valorile sunt mai puțin decât reciproc, folosim operatorul de comparație lt (Mai puțin decât).
if (4 <5) {print "
if ('A' lt 'B') {print "lt (Less Than) pentru valorile șirului \ n"; }
De asemenea, puteți testa, mai mic sau egal cu, care arată foarte asemănător. Amintiți-vă că acest test va reveni Adevărat dacă valorile testate sunt egale între ele sau dacă valoarea din stânga este mai mică decât valoarea din dreapta. Pentru a vedea dacă două numeric valorile sunt mai mic sau egal cu reciproc, folosim operatorul de comparație <=. Pentru a vedea dacă două şir valorile sunt mai mic sau egal cu reciproc, folosim operatorul de comparație Le (Mai puțin decât Egal-cu).
if (5 <= 5) {print "<= pentru valori numerice \ n"; }
if ('A' le 'B') {print "le (Less-than Equal-to) pentru valorile șirului \ n"; }
Mai multe informații despre operatorii de comparație
Când vorbim despre faptul că valorile șirului sunt egale între ele, ne referim la valorile lor ASCII. Deci, literele majuscule sunt din punct de vedere tehnic mai mici decât literele mici și cu cât litera este mai mare în alfabet, cu atât valoarea ASCII este mai mare.
Asigurați-vă că verificați valorile ASCII dacă încercați să luați decizii logice pe baza șirurilor.