Perls salīdzināšanas operatori dažreiz var mulsināt jaunos Perl programmētājus. Neskaidrības rodas no tā, ka Perlam faktiski ir divas salīdzināšanas operatoru kopas - viena salīdzināšanai skaitliskās vērtības un viena, lai salīdzinātu virkni Amerikas standarta koda informācijas apmaiņai (ASCII).
Tā kā salīdzināšanas operatorus parasti izmanto, lai kontrolētu loģisko programmu plūsmu un pieņemtu svarīgus lēmumus, izmantojot nepareizs pārbaudāmās vērtības operators var izraisīt dīvainas kļūdas un atkļūdošanas stundas, ja neesat piesardzīgs.
Neaizmirstiet noķert to, kas rakstīts šīs lapas pašā apakšā, lai atcerētos dažas pēdējā brīža lietas.
Vienāds, Nav vienāds
Vienkāršākie un, iespējams, visvairāk izmantotie salīdzināšanas operatori pārbauda, vai viena vērtība ir vienāda ar citu vērtību. Ja vērtības ir vienādas, pārbaudē tiek iegūta patiesa vērtība, un, ja vērtības nav vienādas, pārbaudē tiek parādīta nepatiesa vērtība.
Lai pārbaudītu divu vienlīdzību skaitlisks vērtības, mēs izmantojam salīdzināšanas operatoru
==. Lai pārbaudītu divu vienlīdzību virkne vērtības, mēs izmantojam salīdzināšanas operatoru ekvivalents (EQual).Šeit ir abu piemērs:
if (5 == 5) {izdrukāt "== skaitliskām vērtībām \ n"; }
if ('moe' eq 'moe') {izdrukāt "eq (EQual) virkņu vērtībām \ n"; }
Pārbaude pretējo, nevis vienādu, ir ļoti līdzīga. Atcerieties, ka šī pārbaude atgriezīsies taisnība ja pārbaudītās vērtības ir nē vienādi viens ar otru. Lai redzētu, vai divi skaitlisks vērtības ir nē vienāds ar otru, mēs izmantojam salīdzināšanas operatoru !=. Lai redzētu, vai divi virkne vērtības ir nē vienāds ar otru, mēs izmantojam salīdzināšanas operatoru ne (Nav vienāds).
if (5! = 6) {print "! = skaitliskām vērtībām \ n"; }
if ('moe' ne 'curly') {drukāt "ne (nav vienāds) virkņu vērtībām \ n"; }
Lielāks nekā, lielāks vai vienāds ar
Tagad apskatīsim pārāks nekā salīdzināšanas operatori. Izmantojot šo pirmo operatoru, varat pārbaudīt, vai viena vērtība ir lielāka par citu. Lai redzētu, vai divi skaitlisks vērtības ir lielākas nekā viena otrai, mēs izmantojam salīdzināšanas operatoru >. Lai redzētu, vai divi virkne vērtības ir lielākas nekā viena otrai, mēs izmantojam salīdzināšanas operatoru gt (Pārāks nekā).
if (5> 4) {print "> skaitliskajām vērtībām \ n"; }
if ('B' gt 'A') {drukāt "gt (lielāks nekā) virkņu vērtībām \ n"; }
Varat arī pārbaudīt lielāks vai vienāds ar, kas izskatās ļoti līdzīgi. Ņemiet vērā, ka šī pārbaude atgriezīsies taisnība ja pārbaudītās vērtības ir vienādas viena ar otru vai ja kreisajā pusē esošā vērtība ir lielāka par vērtību labajā pusē.
Lai redzētu, vai divi skaitlisks vērtības ir lielākas vai vienādas ar otru, mēs izmantojam salīdzināšanas operatoru >=. Lai redzētu, vai divi virkne vērtības ir lielākas vai vienādas ar otru, mēs izmantojam salīdzināšanas operatoru ge (Lielāka nekā vienāda).
if (5> = 5) {print "> = skaitliskām vērtībām \ n"; }
if ('B' ge 'A') {print "ge (Lielāka nekā vienāda ar) virkņu vērtībām \ n"; }
Mazāk nekā, mazāk vai vienādi ar
Ir dažādi salīdzināšanas operatori, kurus varat izmantot, lai noteiktu Perl programmu loģisko plūsmu. Mēs jau esam apsprieduši atšķirību starp Perl skaitļu salīdzināšanas operatoriem un Perl virkņu salīdzināšanas operatoriem, kas var radīt zināmu neizpratni jaunajiem Perl programmētājiem. Mēs arī esam iemācījušies, kā noteikt, vai divas vērtības ir vienādas vai vienādas vai nav vienādas, un esam iemācījušies, kā noteikt, vai divas vērtības ir lielākas vai vienādas viena ar otru.
Apskatīsim mazāk nekā salīdzināšanas operatori. Izmantojot šo pirmo operatoru, varat pārbaudīt, vai ir viena vērtība mazāk nekā cita vērtība. Lai redzētu, vai divi skaitlisks vērtības ir mazāk nekā mēs izmantojam salīdzināšanas operatoru <. Lai redzētu, vai divi virkne vērtības ir mazāk nekā mēs izmantojam salīdzināšanas operatoru lt (Mazāk nekā).
if (4 <5) {izdrukāt "
if ('A' lt 'B') {drukāt "lt (mazāk nekā) virkņu vērtībām \ n"; }
Varat arī pārbaudīt, mazāks vai vienāds ar, kas izskatās ļoti līdzīgi. Atcerieties, ka šī pārbaude atgriezīsies taisnība ja pārbaudītās vērtības ir vienādas viena ar otru vai ja vērtība kreisajā pusē ir mazāka par vērtību labajā pusē. Lai redzētu, vai divi skaitlisks vērtības ir mazāks vai vienāds ar mēs izmantojam salīdzināšanas operatoru <=. Lai redzētu, vai divi virkne vērtības ir mazāks vai vienāds ar mēs izmantojam salīdzināšanas operatoru le (Mazāk nekā vienādi).
if (5 <= 5) {izdrukāt "<= skaitliskām vērtībām \ n"; }
if ('A' le 'B') {drukāt "le (mazāk nekā vienāds ar) virkņu vērtībām \ n"; }
Papildinformācija par salīdzināšanas operatoriem
Kad mēs runājam par virkņu vērtībām, kas ir vienādas viena ar otru, mēs runājam par to ASCII vērtībām. Tātad lielie burti ir tehniski mazāki nekā mazie burti, un jo lielāks burts ir alfabētā, jo augstāka ir ASCII vērtība.
Pārliecinieties, ka esat pārbaudījis ASCII vērtības, ja mēģināt pieņemt loģiskus lēmumus, pamatojoties uz virknēm.