Perl operátory srovnání mohou být někdy pro nové programátory Perl matoucí. Zmatek pramení ze skutečnosti, že Perl má ve skutečnosti dvě sady operátorů porovnání - jeden pro porovnání číselné hodnoty a jedna pro porovnávání řetězců hodnot amerického standardního kódu pro výměnu informací (ASCII).
Vzhledem k tomu, že operátoři porovnávání se obvykle používají k řízení logického toku programu ak přijímání důležitých rozhodnutí, používají nesprávný operátor pro testovanou hodnotu může vést k bizarním chybám a hodinám ladění, pokud si nejste opatrní.
Nezapomeňte zachytit to, co je napsáno v samém spodku této stránky, abyste si pamatovali pár věcí na poslední chvíli.
Rovné, nerovné
Nejjednodušší a pravděpodobně nejpoužívanější operátory porovnávání testují, zda se jedna hodnota rovná jiné hodnotě. Pokud jsou hodnoty stejné, test vrací true a pokud nejsou stejné, test vrátí false.
Pro testování rovnosti dvou číselný hodnoty, použijeme operátor porovnání ==. Pro testování rovnosti dvou tětiva hodnoty, použijeme operátor porovnání ekv (Rovnat se).
Zde je příklad obou:
if (5 == 5) {print "== pro číselné hodnoty \ n"; }
if ('moe' eq 'moe') {print "eq (EQual) pro hodnoty řetězce \ n"; }
Testování opaku, ne rovno, je velmi podobné. Nezapomeňte, že se tento test vrátí skutečný pokud jsou testované hodnoty ne rovná se navzájem. Zjistit, jestli dva číselný hodnoty jsou ne rovni sobě, použijeme operátor porovnání !=. Zjistit, jestli dva tětiva hodnoty jsou ne rovni sobě, použijeme operátor porovnání ne (Není rovno).
if (5! = 6) {print "! = pro číselné hodnoty \ n"; }
if ('moe' ne 'curly') {print "ne (Not Equal) pro hodnoty řetězce \ n"; }
Větší než, Větší než nebo rovno
Nyní se podívejme na větší než operátory porovnání. Pomocí tohoto prvního operátora můžete otestovat, zda je jedna hodnota větší než jiná hodnota. Zjistit, jestli dva číselný hodnoty jsou větší než navzájem, použijeme operátor porovnání >. Zjistit, jestli dva tětiva hodnoty jsou větší než navzájem, použijeme operátor porovnání gt (Větší než).
if (5> 4) {print "> pro číselné hodnoty \ n"; }
if ('B' gt 'A') {print "gt (Greater Than) pro hodnoty řetězce \ n"; }
Můžete také vyzkoušet větší nebo rovno, což vypadá velmi podobně. Mějte na paměti, že se tento test vrátí skutečný pokud jsou testované hodnoty navzájem stejné nebo pokud je hodnota nalevo větší než hodnota vpravo.
Zjistit, jestli dva číselný hodnoty jsou větší nebo rovno sobě, použijeme operátor porovnání >=. Zjistit, jestli dva tětiva hodnoty jsou větší nebo rovno sobě, použijeme operátor porovnání ge (Větší než stejné).
if (5> = 5) {print "> = pro číselné hodnoty \ n"; }
if ('B' ge 'A') {print "ge (Větší než rovno) pro hodnoty řetězce \ n"; }
Méně než, méně než nebo rovno
Existuje celá řada operátorů porovnání, které můžete použít k určení logického toku vašich programů Perl. Již jsme diskutovali o rozdílu mezi operátory numerického srovnání Perlu a operátory porovnání řetězců Perl, což může způsobit nové záměny novým programátorům Perlu. Naučili jsme se také, jak zjistit, zda jsou dvě hodnoty navzájem rovny, nebo ne, a naučili jsme se, jak zjistit, zda jsou dvě hodnoty navzájem větší nebo rovno.
Pojďme se podívat na méně než operátory porovnání. Pomocí tohoto prvního operátora můžete otestovat, zda je jedna hodnota méně než další hodnota. Zjistit, jestli dva číselný hodnoty jsou méně než navzájem používáme operátor porovnání <. Zjistit, jestli dva tětiva hodnoty jsou méně než navzájem používáme operátor porovnání je (Méně než).
if (4 <5) {print "
if ('A' lt 'B') {print "lt (Less Than) pro hodnoty řetězce \ n"; }
Můžete také vyzkoušet, menší nebo rovno, což vypadá velmi podobně. Nezapomeňte, že se tento test vrátí skutečný pokud jsou testované hodnoty navzájem stejné nebo pokud je hodnota nalevo menší než hodnota vpravo. Zjistit, jestli dva číselný hodnoty jsou menší nebo rovno navzájem používáme operátor porovnání <=. Zjistit, jestli dva tětiva hodnoty jsou menší nebo rovno navzájem používáme operátor porovnání le (Méně než stejné).
if (5 <= 5) {print "<= pro číselné hodnoty \ n"; }
if ('A' le 'B') {print "le (Less-than Equal-to) pro hodnoty řetězce \ n"; }
Další informace o srovnávacích operátorech
Když mluvíme o tom, že hodnoty řetězců jsou si navzájem rovny, máme na mysli jejich hodnoty ASCII. Velká písmena jsou tedy technicky menší než malá písmena a čím vyšší je písmeno v abecedě, tím vyšší je hodnota ASCII.
Pokud se pokoušíte dělat logická rozhodnutí na základě řetězců, zkontrolujte své hodnoty ASCII.