2011-10-16 24 views
7

Mi código original está en Python, pero necesito convertirlo a Perl para algunas bibliotecas que no tengo a mi disposición en Python.Cómo convertir una cadena codificada en hexadecimal a una cadena de bytes en Perl?

En Python Me gustaría hacer esto:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000') 

Y

Esto crearía una cadena que contiene la representación binaria de:

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

Ahora que mi cadena es una matriz de bytes I puedo enviarlo como la carga útil de mi paquete. ¿Cómo lo hago Perl?

+1

'perldoc -f pack' es un buen punto de partida. (Lo siento, no más detalles, hora de acostarse) – sarnold

Respuesta

7

Puede usar la función pack para esto.

Ejemplo:

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

Mira la pack tutorial.

Cuestiones relacionadas