如何在 Perl 中将十六进制编码的字符串转换为字节字符串?

发布于 2024-12-10 07:55:19 字数 468 浏览 0 评论 0原文

我的原始代码位于 Python 中,但我需要将其转换为 Perl我在 Python 中没有可用的库。

在 Python 中,我会这样做:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000')

AND

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

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

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

My original code is in Python, but I need to convert it to Perl for some libraries that I don't have at my disposal in Python.

In Python I would do this:

packet=binascii.unhexlify('F0000000F6905C452001A8C0000000000160994E810FB54E0100DB0000000000000')

AND

This would create a string containing the binary representation of:

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

Now that my string is a byte array I can send it as the payload for my packet. How do I do it Perl?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

棒棒糖 2024-12-17 07:55:19

您可以使用 pack 函数来实现此目的。

示例:

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

查看打包教程

You can use the pack function for this.

Example:

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

Check out the pack tutorial.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文