用Perl6语法解析二进制结构

用Perl6语法解析二进制结构,第1张

概述使用Perl6解析二进制结构的最佳选择是什么. 在Perl5中,我们在Perl6上有打包/解包方法它们似乎是实验性的 是否可以使用Perl6语法来解析二进制数据,假设我有一个文件,其中包含以下二进制格式的记录: struct record {short int ut_type;char ut_line[UT_LINESIZE];char ut_id[4];char ut_user[UT_ 使用Perl6解析二进制结构的最佳选择是什么.

在Perl5中,我们在Perl6上有打包/解包方法它们似乎是实验性的

是否可以使用Perl6语法来解析二进制数据,假设我有一个文件,其中包含以下二进制格式的记录:

struct record {short int ut_type;char ut_line[UT_linesIZE];char ut_ID[4];char ut_user[UT_nameSIZE];char ut_host[UT_HOSTSIZE];}

是否可以使用Perl6语法解析此文件?

解决方法

What is the best option to parse a binary structure with Perl6?

特别是考虑到你了解P5的打包/拆包,新的P5pack模块似乎是合适的解决方案. (我没有测试过它.它是新的.Auii它并没有实现所有的东西而且它并没有模仿P5的包装.但它是liz.)

如果上面链接的P5包接口的新纯P6实现没有做你需要做的事情,另一个明显的解决方案是在你的P6代码中使用原始的P5函数,由常规的perl 5二进制文件执行.以下是不完整/未经测试但我的意思大致如下:

use Inline::Perl5 ; my \P5 = Inline::Perl5.new ;my $mem = Buf ... ;my $hex = P5.call('unpack','H*',$mem) ;

(或者,相反,将主线写为P5代码,通过Inline::Perl6添加P6代码.)

在当前版本的P6(即6.c)中,语法只能处理文本.

2年前P6er“skIDs”写道:

07003 (written in 2016).

那时他们还整理了以下相关链接:

> skID’s然后a packing foo { template bar { ... } } construct的新想法加上他们的much older “very old,low level types thoughts”.
> ShimmerFairy的“thoughts on possible binary grammars in P6 (incomplete)”
> Juerd的“RFC: A more Perl6-esque “unpack””.
> smls的“Binary Parsing in Perl 6”.
>马萨克的“A first approach to pack/unpack in Perl 6”.
> jnthn的“talk on Grammar::Generative” (video).

总结

以上是内存溢出为你收集整理的用Perl6语法解析二进制结构全部内容,希望文章能够帮你解决用Perl6语法解析二进制结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存