En begyndervejledning til sammenligning af værdier i Perl

click fraud protection

Perl sammenligningsoperatører kan undertiden være forvirrende for nye Perl-programmerere. Forvirringen stammer fra det faktum, at Perl faktisk har to sæt sammenligningsoperatører - et til sammenligning numeriske værdier og én til sammenligning af amerikanske standardkoder for informationsudveksling (ASCII) -værdier.

Da sammenligningsoperatører typisk bruges til at kontrollere den logiske programstrøm og træffe vigtige beslutninger ved hjælp af forkert operatør for den værdi, du tester, kan føre til bisarre fejl og timevis med fejlfinding, hvis du ikke er forsigtig.

Glem ikke at fange hvad der er skrevet nederst på denne side for nogle ting i sidste øjeblik, som du kan huske.

Lige, ikke lige

De enkleste og sandsynligvis mest anvendte sammenligningsoperatører tester for at se, om en værdi er lig med en anden værdi. Hvis værdierne er ens, returnerer testen sand, og hvis værdierne ikke er ens, returnerer testen falsk.

Til test af ligestilling mellem to numerisk værdier, bruger vi sammenligningsoperatøren

instagram viewer
==. Til test af ligestilling mellem to snor værdier, bruger vi sammenligningsoperatøren eq (Lige).

Her er et eksempel på begge:

if (5 == 5) {print "== for numeriske værdier \ n"; }
if ('moe' eq 'moe') {udskriv "eq (EQual) for strengværdier \ n"; } 

Test af det modsatte, ikke ens, er meget ens. Husk, at denne test vil vende tilbage rigtigt hvis de testede værdier er ikke lig med hinanden. For at se om to numerisk værdier er ikke lig med hinanden bruger vi sammenligningsoperatøren !=. For at se om to snor værdier er ikke lig med hinanden bruger vi sammenligningsoperatøren ne (Ikke lige).

if (5! = 6) {print "! = for numeriske værdier \ n"; }
if ('moe' ne 'krøllet') {print "ne (Ikke lig) for strengværdier \ n"; } 

Større end, større end eller lig med

Lad os nu se på bedre end sammenligningsoperatører. Ved hjælp af denne første operator kan du teste for at se, om en værdi er større end en anden værdi. For at se om to numerisk værdier er større end hinanden, vi bruger sammenligningsoperatøren >. For at se om to snor værdier er større end hinanden, vi bruger sammenligningsoperatøren gt (Bedre end).

if (5> 4) {udskriv "> for numeriske værdier \ n"; }
if ('B' gt 'A') {print "gt (Greater Than) for strengværdier \ n"; } 

Du kan også teste for større end eller lig med, der ligner meget. Husk, at denne test vil vende tilbage rigtigt hvis de testede værdier er lig med hinanden, eller hvis værdien til venstre er større end værdien til højre.

For at se om to numerisk værdier er større end eller lig med hinanden, vi bruger sammenligningsoperatøren >=. For at se om to snor værdier er større end eller lig med hinanden, vi bruger sammenligningsoperatøren ge (Større end lig med).

if (5> = 5) {print "> = for numeriske værdier \ n"; }
if ('B' ge 'A') {print "ge (Greater-than Equal-to) for strengværdier \ n"; } 

Mindre end, mindre end eller lig med

Der er en række sammenligningsoperatører, du kan bruge til at bestemme den logiske strøm af dine Perl-programmer. Vi har allerede diskuteret forskellen mellem de numeriske sammenligningsoperatører Perl og Perl-streng-sammenligningsoperatørerne, hvilket kan forårsage en vis forvirring hos nye Perl-programmerere. Vi har også lært, hvordan man fortæller, om to værdier er ens eller ikke ens, og vi har lært, hvordan man fortæller, om to værdier er større end eller lig med hinanden.

Lad os se på Mindre end sammenligningsoperatører. Ved hjælp af denne første operator kan du teste for at se, om en værdi er Mindre end en anden værdi. For at se om to numerisk værdier er Mindre end hinanden bruger vi sammenligningsoperatøren <. For at se om to snor værdier er Mindre end hinanden bruger vi sammenligningsoperatøren lt (Mindre end).

if (4 <5) {udskriv "
if ('A' lt 'B') {print "lt (Mindre end) for strengværdier \ n"; } 

Du kan også teste for, mindre end eller lig med, der ligner meget. Husk, at denne test vil vende tilbage rigtigt hvis de testede værdier er lig med hinanden, eller hvis værdien til venstre er mindre end værdien til højre. For at se om to numerisk værdier er mindre end eller lig med hinanden bruger vi sammenligningsoperatøren <=. For at se om to snor værdier er mindre end eller lig med hinanden bruger vi sammenligningsoperatøren le (Mindre end lig med).

 if (5 <= 5) {udskriv "<= for numeriske værdier \ n"; }
if ('A' le 'B') {print "le (Mindre end lig med) for strengværdier \ n"; } 

Flere oplysninger om sammenligningsoperatører

Når vi taler om strengværdier, der er ens med hinanden, henviser vi til deres ASCII-værdier. Så store bogstaver er teknisk set mindre end de små bogstaver, og jo højere bogstavet er i alfabetet, jo højere er ASCII-værdien.

Sørg for at kontrollere dine ASCII-værdier, hvis du prøver at tage logiske beslutninger baseret på strenge.

instagram story viewer