Perl 未知解压模板

Posted

技术标签:

【中文标题】Perl 未知解压模板【英文标题】:Perl unknown template of unpack 【发布时间】:2013-07-19 20:08:55 【问题描述】:

有人可以告诉我在Perl中的含义

unpack('@76b9', $buf);

(特别是 '@76b9' 部分)。 这个以零为参数的函数可以返回不同于零的东西吗?

【问题讨论】:

这取决于您所说的“零作为参数”是什么意思。是$buf = 0, $buf = 'zero', $buf = "\0", ... 【参考方案1】:

@76 表示跳到$buf 中的第76 个字节。

b9 表示解包一个 9 位整数字段。

有关packunpack 的教程,请参阅perlpacktut。

【讨论】:

【参考方案2】:
@76

@Null-填充或截断到绝对位置,从最里面的()-group开始计数

b9

b 一个位串(每个字节内的升序位顺序,如 vec())。

例子:

unpack('@76b9', (" "x76) . chr(4) . chr(1) )   ==>  001000001
                                                    --------|
                                                        |   |
                             \004 in ascending order-----   |
                                                            |
                             LSB of \001 --------------------

【讨论】:

以上是关于Perl 未知解压模板的主要内容,如果未能解决你的问题,请参考以下文章

Perl:模板工具包的替代品

获取 Perl 打包/解包模板的元素数量

带debian包的perl模块模板

导出的数据流模板参数未知

Perl读写文件模板

在未知尺度的图像中寻找简单的模板