2011-10-16 5 views
7

Il mio codice originale è Python, ma ho bisogno di convertirlo in Perl per alcune librerie che non ho a mia disposizione in Python.Come convertire una stringa con codifica esadecimale in una stringa di byte in Perl?

In Python farei questo:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000') 

E

Questo creerebbe una stringa contenente la rappresentazione binaria di:

0xF0 0x00 0x00 0x00 0xF6 0x90 0x5C 0x45 etc... 

Ora che la mia stringa è un array di byte I può inviarlo come payload per il mio pacchetto. Come posso farlo Perl?

+1

'perldoc -f pack' è un buon punto di partenza. (Scusate senza ulteriori dettagli, ora di andare a letto.) – sarnold

risposta

7

Per questo è possibile utilizzare la funzione pack.

Esempio:

$ perl -e 'print pack("H*", "303132616263"), "\n";' 
012abc 

Scopri i pack tutorial.