ragazzi a cosa serve la funzione pack? Ho visto che viene utilizzate nelle sostituzioni, esempio:
[code] s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; [code]
ma viene usata solo nelle sostituzioni???
ragazzi a cosa serve la funzione pack? Ho visto che viene utilizzate nelle sostituzioni, esempio:
[code] s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; [code]
ma viene usata solo nelle sostituzioni???
C/C++
pack serve per trafromare un numero in una seq di byte.
Ad esempio, hai il numero 1234 e lo vuoi cinvertire in formato 2byte con segno. Basta che fai:
pack("s",1234) e la funziona pack di torna i due byte.
GUIDA IN ITALIANO A PACK:
http://www.perl.it/documenti/perlfun...html?func=pack
unpack invece fa il contrario.
print unpack("I",pack("I",854651))."\n";
#stampa '854651'
La sostituzione che hai fatto te invece si usa negli url.
I caratteri speciali negli url sono convertiti in esadecimale e davanti hanno il '%'.
pack("C", hex($1))
hex converte il numero esadecimale in decimale.
pack trasforma il numero in un carattere.
Nel tuo caso però si poteva sostituire la funzione pack con chr.
s/%([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
Che è molto più bello XD
se non hai capito risp.
ciao