Perl vertailuoperaattorit voivat joskus olla hämmentäviä uusille Perl-ohjelmoijille. Sekaannus johtuu tosiasiasta, että Perlillä on todella kaksi vertailuoperaattorijoukkoa - yksi vertailua varten numeeriset arvot ja yksi merkkijonojen American Standard Code for Information Interchange (ASCII) arvojen vertaamiseksi.
Koska vertailuoperaatioita käytetään tyypillisesti loogisen ohjelman kulun ohjaamiseen ja tärkeiden päätösten tekemiseen, käyttämällä väärä operaattori testattavalle arvolle voi johtaa omituisiin virheisiin ja tuntien virheenkorjaukseen, jos et ole varovainen.
Älä unohda tarttua siihen, mitä tämän sivun alaosassa on kirjoitettu, jotta muistettaisiin viime hetken asioita.
Tasainen, ei tasa-arvoinen
Yksinkertaisin ja todennäköisesti eniten käytetty vertailuoperaattori testaa onko yksi arvo yhtä suuri kuin toinen arvo. Jos arvot ovat samat, testi palaa totta, ja jos arvot eivät ole samat, testi antaa väärän.
Kahden tasa-arvon testaamiseksi numeerinen Käytämme vertailuoperaattoria ==. Kahden tasa-arvon testaamiseksi jono Käytämme vertailuoperaattoria ekv (Yhtä suuri).
Tässä on esimerkki molemmista:
if (5 == 5) {tulosta "== numeroarvoille \ n"; }
if ('moe' eq 'moe') {tulosta "eq (EQual) merkkijonoarvoille \ n"; }
Testaus päinvastaiselle, ei tasavertaiselle, on hyvin samanlainen. Muista, että tämä testi palaa totta jos testatut arvot ovat ei yhtä suuret toistensa kanssa. Jos haluat nähdä, onko kaksi numeerinen arvot ovat ei yhtä suuret kuin toiset, käytämme vertailuoperaattoria !=. Jos haluat nähdä, onko kaksi jono arvot ovat ei yhtä suuret kuin toiset, käytämme vertailuoperaattoria NE (Ei tasa-arvoinen).
if (5! = 6) {tulosta "! = numeroarvoille \ n"; }
if ('moe' ne 'curly') {tulosta "ne (Not Equal) merkkijonoarvoille \ n"; }
Suurempi kuin, yhtä suuri tai yhtä suuri kuin
Katsotaanpa nyt suurempi kuin vertailuoperaattorit. Tätä ensimmäistä operaattoria käyttämällä voit testata, onko yksi arvo suurempi kuin toinen. Jos haluat nähdä, onko kaksi numeerinen arvot ovat suurempia kuin toiset, käytämme vertailuoperaattoria >. Jos haluat nähdä, onko kaksi jono arvot ovat suurempia kuin toiset, käytämme vertailuoperaattoria gt (Suurempi kuin).
if (5> 4) {tulosta "> numeroarvoille \ n"; }
if ('B' gt 'A') {tulosta "gt (suurempi kuin) merkkijonoarvoille \ n"; }
Voit myös testata suurempi tai yhtä suuri kuin, joka näyttää hyvin samanlaiselta. Muista, että tämä testi palaa totta jos testatut arvot ovat yhtä suuret tai jos vasemmalla oleva arvo on suurempi kuin oikealla oleva arvo.
Jos haluat nähdä, onko kaksi numeerinen arvot ovat suurempia tai yhtä suuret toistensa kanssa, käytämme vertailuoperaattoria >=. Jos haluat nähdä, onko kaksi jono arvot ovat suurempia tai yhtä suuret toistensa kanssa, käytämme vertailuoperaattoria ge (Suurempi kuin tasa-arvoinen).
if (5> = 5) {tulosta "> = numeroarvoille \ n"; }
if ('B' ge 'A') {tulosta "ge (suurempi kuin yhtä suuri) merkkijonoarvoille \ n"; }
Vähemmän kuin, vähemmän kuin tai yhtä suuret kuin
On olemassa erilaisia vertailuoperaattoreita, joiden avulla voit määrittää Perl-ohjelmien loogisen virtauksen. Olemme jo keskustelleet Perl-numeeristen vertailuoperaattoreiden ja Perl-merkkijonovertailuoperaattoreiden eroista, mikä voi aiheuttaa hämmennystä uusille Perl-ohjelmoijille. Olemme myös oppineet, kuinka saada selville, ovatko kaksi arvoa yhtä suuret vai eivät yhtä suuret, ja olemme oppineet, kuinka tietää, jos kaksi arvoa ovat suurempia tai yhtä suuret toistensa suhteen.
Katsotaanpa vähemmän kuin vertailuoperaattorit. Tämän ensimmäisen operaattorin avulla voit testata onko yksi arvo vähemmän kuin toinen arvo. Jos haluat nähdä, onko kaksi numeerinen arvot ovat vähemmän kuin käytämme vertailuoperaattoria <. Jos haluat nähdä, onko kaksi jono arvot ovat vähemmän kuin käytämme vertailuoperaattoria lt (Vähemmän kuin).
if (4 <5) {tulosta "
if ('A' lt 'B') {tulosta "lt (vähemmän kuin) merkkijonoarvoille \ n"; }
Voit myös testata, Pienempi kuin tai yhtä suuri kuin, joka näyttää hyvin samanlaiselta. Muista, että tämä testi palaa totta jos testatut arvot ovat yhtä suuret tai jos vasemmalla oleva arvo on pienempi kuin oikealla oleva arvo. Jos haluat nähdä, onko kaksi numeerinen arvot ovat Pienempi kuin tai yhtä suuri kuin käytämme vertailuoperaattoria <=. Jos haluat nähdä, onko kaksi jono arvot ovat Pienempi kuin tai yhtä suuri kuin käytämme vertailuoperaattoria le (Vähemmän kuin yhtä suuret).
if (5 <= 5) {tulosta "<= numeroarvoille \ n"; }
if ('A' le 'B') {tulosta "le (vähemmän kuin yhtä suuri) merkkijonoarvoille \ n"; }
Lisätietoja vertailuoperaattoreista
Kun puhumme merkkijonoarvoista, jotka ovat yhtä suuret toistensa kanssa, tarkoitamme niiden ASCII-arvoja. Joten isot kirjaimet ovat teknisesti vähemmän kuin pienet kirjaimet, ja mitä suurempi kirjain on aakkosessa, sitä suurempi on ASCII-arvo.
Muista tarkistaa ASCII-arvosi, jos yrität tehdä loogisia päätöksiä merkkijonojen perusteella.