Il comportamento degli operatori artimetici binari varia a seconda che vengano
utilizzati su numeri o stringhe. Gli operatori trattano una
stringa come una serie di bit e lavorano su di essi (la stringa "3"
è la sequenza di bit 00110011). Gli operatori lavorano con la forma
binaria di un numero (il numero 3 è la sequenza di bit 00000011).
Dunque, con 11 & 3 si esegue l'operazione "and" su numeri (produce 3).
Con "11" & "3" si compie l'operazione "and" su stringhe (produce "1").
La maggior parte dei problemi con & e | nasce poiché i
programmatori pensano di avere in mano dei numeri, ma in realtà
hanno delle stringhe. I rimanenti problemi nascono dal fatto che i
programmatori scrivono:
if ("\020\020" & "\101\101") {
# ...
}
ma una stringa contenente due byte nulli (il risultato di "\020\020" &
"\101\101") non rappresenta un valore falso in Perl. Dovete scrivere:
Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan
Torkington. Tutti i diritti riservati.
Questa documentazione è libera; puoi ridistribuirla e/o
modificarla secondo gli stessi termini applicati al Perl.
Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di
codice in questo file sono rilasciati al pubblico dominio. Potete, e
siete incoraggiati a farlo, utilizzare il presente codice o qualunque
forma derivata da esso nei vostri programmi per divertimento o per profitto.
Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese
ma non è obbligatorio.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!