【发布时间】:2012-10-05 10:13:34
【问题描述】:
如果我想用变量前 1000 个字节尝试这个猜测子例程,unpack 的用法是否正确?
#!/usr/bin/env perl
use warnings;
use 5.10.1;
my $var = ...;
my $part = unpack( 'b1000', $var ) ;
sub is_binary_data {
local $_ = shift;
( tr/ -~//c / length ) >= .3;
}
if ( is_binary_data( $part ) ) {
say "Binary";
}
else {
say "Text";
}
【问题讨论】:
-
检查二进制数据的另一个选项可能是使用
Encode::Guess(perldoc.perl.org/Encode/Guess.html),它用于确定字符串的字符编码。将您已知的字符编码设置为它尝试的唯一选项;如果失败,你就知道你有二进制数据。
标签: perl text binary-data unpack