A volte gli operatori di confronto Perl possono confondere i nuovi programmatori Perl. La confusione deriva dal fatto che Perl ha in realtà due serie di operatori di confronto: uno per il confronto di valori numerici e uno per il confronto di valori American Standard Code for Information Interchange (ASCII).
Poiché gli operatori di confronto vengono generalmente utilizzati per controllare il flusso logico del programma e prendere decisioni importanti, l'utilizzo dell'operatore errato per il valore che si sta testando può portare a bizzarri errori e ore di debug, se non si presta attenzione.
Non dimenticare di catturare ciò che è scritto in fondo a questa pagina per alcune cose dell'ultimo minuto da ricordare.
Gli operatori di confronto più semplici e probabilmente più utilizzati testano per vedere se un valore è uguale a un altro valore. Se i valori sono uguali, il test restituisce true e se i valori non sono uguali, il test restituisce false.
Per testare l'uguaglianza di due numerico valori, utilizziamo l'operatore di confronto ==. Per testare l'uguaglianza di due corda valori, utilizziamo l'operatore di confronto eq (Pari).
Ecco un esempio di entrambi:
if (5 == 5) print "== per valori numerici \ n";
if ('moe' eq 'moe') print "eq (EQual) per valori stringa \ n";
Testare il contrario, non uguale, è molto simile. Ricorda che questo test tornerà vero se i valori testati sono non uguali tra loro. Per vedere se due numerico i valori sono non uguali tra loro, utilizziamo l'operatore di confronto !=. Per vedere se due corda i valori sono non uguali tra loro, utilizziamo l'operatore di confronto NE (Non uguale).
if (5! = 6) print "! = per valori numerici \ n";
if ('moe' ne 'curly') print "ne (Not Equal) per valori stringa \ n";
Ora diamo un'occhiata a più grande di operatori di confronto. Utilizzando questo primo operatore, è possibile verificare se un valore è maggiore di un altro valore. Per vedere se due numerico i valori sono maggiori l'uno dell'altro, utilizziamo l'operatore di confronto >. Per vedere se due corda i valori sono maggiori l'uno dell'altro, utilizziamo l'operatore di confronto gt (Più grande di).
if (5> 4) print "> per valori numerici \ n";
if ('B' gt 'A') print "gt (Maggiore di) per i valori stringa \ n";
Puoi anche provare maggiore o uguale a, che sembra molto simile. Tieni presente che questo test tornerà vero se i valori testati sono uguali tra loro o se il valore a sinistra è maggiore del valore a destra.
Per vedere se due numerico i valori sono maggiori o uguali tra loro, utilizziamo l'operatore di confronto > =. Per vedere se due corda i valori sono maggiori o uguali tra loro, utilizziamo l'operatore di confronto ge (Maggiore di uguale a).
if (5> = 5) print "> = per valori numerici \ n";
if ('B' ge 'A') print "ge (Maggiore di uguale a) per valori stringa \ n";
Esistono vari operatori di confronto che è possibile utilizzare per determinare il flusso logico dei programmi Perl. Abbiamo già discusso della differenza tra gli operatori di confronto numerico Perl e gli operatori di confronto di stringhe Perl, che può causare confusione ai nuovi programmatori Perl. Abbiamo anche imparato a dire se due valori sono uguali o non uguali tra loro e abbiamo imparato a dire se due valori sono maggiori o uguali tra loro.
Diamo un'occhiata a meno di operatori di confronto. Utilizzando questo primo operatore, è possibile verificare se un valore è meno di un altro valore. Per vedere se due numerico i valori sono meno di a vicenda, utilizziamo l'operatore di confronto <. Per vedere se due corda i valori sono meno di a vicenda, utilizziamo l'operatore di confronto lt (Meno di).
if (4 < 5) print "< for numeric values\n";
if ('A' lt 'B') print "lt (Less Than) per valori stringa \ n";
Puoi anche provare, minore o uguale a, che sembra molto simile. Ricorda che questo test tornerà vero se i valori testati sono uguali tra loro o se il valore a sinistra è inferiore al valore a destra. Per vedere se due numerico i valori sono minore o uguale a a vicenda, utilizziamo l'operatore di confronto <=. Per vedere se due corda i valori sono minore o uguale a a vicenda, utilizziamo l'operatore di confronto Le (Meno di uguale a).
if (5 <= 5) print "<= for numeric values\n";
if ('A' le 'B') print "le (Less-than Equal-to) per valori stringa \ n";
Quando parliamo di valori di stringa uguali tra loro, ci riferiamo ai loro valori ASCII. Pertanto, le lettere maiuscole sono tecnicamente inferiori alle lettere minuscole e maggiore è la lettera dell'alfabeto, maggiore è il valore ASCII.
Assicurati di controllare i valori ASCII se stai cercando di prendere decisioni logiche basate su stringhe.