如何比较Perl中的打包值?
我想在Perl中使用
pack()函数来编码一些数据.然后我想将我的打包结构与另一个打包结构进行比较.我想比较这个打包结构的字节值.
根据文档,cmp使用当前区域设置来确定如何比较字符串.但我不希望任何情报应用于比较.我想要最接近memcmp()的东西.显然我不能使用< =>比较我的打包对象,因为它们不是数字. 在Perl中比较打包字符串的最佳方法是什么? 旁注:我一直在阅读this article on efficient sorting in Perl,它注意到普通排序函数使用类似memcmp的算法来比较结构.我想知道如何在不使用sort的情况下实现这样的比较. 解决方法
禁用块的区域设置注意事项并像往常一样使用cmp:
sub mycmp { no locale; $_[0] cmp $_[1]; } perlop文档提供
然后在perllocale
例如,跑步 my($one,$two) = map pack("N",$_) => 1,2; say mycmp($one,$two); say mycmp($two,$one); 输出 -1 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |