2011-10-16 31 views
7

Mój oryginalny kod jest w Python, ale muszę przekonwertować go na Perla dla niektórych bibliotek, których nie mam do dyspozycji w Pythonie.Jak przekonwertować ciąg znaków szesnastkowy na ciąg bajtów w Perlu?

W Pythonie chciałbym to zrobić:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000') 

I

spowodowałoby to łańcuch zawierający binarną reprezentację:

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

teraz, że mój ciąg jest tablica bajtów I może wysłać go jako ładunek dla mojego pakietu. Jak to zrobić Perl?

+1

'perldoc -f pack' to wystarczająco dobry punkt wyjścia. (Niestety nie ma więcej szczegółów, pora snu.) – sarnold

Odpowiedz

7

Możesz użyć do tego funkcji pack.

przykład:

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

zobacz się z pack tutorial.

Powiązane problemy