2011-10-16 62 views
7

Mã ban đầu của tôi là Python, nhưng tôi cần phải chuyển đổi nó thành Perl cho một số thư viện mà tôi không có theo ý của tôi bằng Python.Làm thế nào để chuyển đổi một chuỗi được mã hóa hex thành chuỗi byte trong Perl?

Trong Python tôi sẽ làm điều này:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000') 

Điều này sẽ tạo ra một chuỗi chứa biểu diễn nhị phân của:

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

Bây giờ chuỗi của tôi là một mảng byte tôi có thể gửi nó dưới dạng tải trọng cho gói của tôi. Làm thế nào để tôi làm điều đó Perl?

+1

'perldoc -f pack' là điểm bắt đầu đủ tốt. (Xin lỗi không có thêm chi tiết, giờ đi ngủ.) – sarnold

Trả lời

7

Bạn có thể sử dụng chức năng pack cho việc này.

Ví dụ:

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

Kiểm tra các pack tutorial.

Các vấn đề liên quan