我想了解unpack
如何以给定的perl单线返回总和。
我看过pack
手册页,并且大多数人理解这只是将给定数组格式化为scalar
个double的ten
。
但是,我找不到unpack
的{{1}}的适当文档。在这里寻求帮助。
%123
此行正确输出print unpack "%123d*" , pack( "d*", (1..10));
,即55
。
答案 0 :(得分:3)
除了pack()中允许的字段外,您还可以在字段前加上%前缀,以表示您想要的是项目的
位校验和,而不是项目本身。
因此,%123d*
意味着将所有输入整数1..10
相加,然后取该结果的前123位以构造“ %8d*
或仅%d*
(相当于%16d*
)就足够了。