【问题标题】:How to convert a hex-encoded string to a byte string in Perl?如何在 Perl 中将十六进制编码的字符串转换为字节字符串?
【发布时间】:2011-12-08 15:42:53
【问题描述】:

我的原始代码在 Python 中,但我需要将其转换为 Perl,以用于一些我在 Python 中无法使用的库。

在 Python 中我会这样做:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000')

这将创建一个包含以下二进制表示的字符串:

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

现在我的字符串是一个字节数组,我可以将它作为数据包的有效负载发送。 Perl 我该怎么做?

【问题讨论】:

  • perldoc -f pack 是一个足够好的起点。 (抱歉,没有更多细节,就寝时间。)

标签: perl hex packet


【解决方案1】:

您可以为此使用pack 函数。

例子:

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

查看pack tutorial

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2019-07-27
    • 2017-08-23
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2023-03-07
    • 2022-06-18
    相关资源
    最近更新 更多