我甚至无法在perl中读取pgm文件。 有谁知道如何做到这一点? (pgm文件是二进制版本而不是ASCII)
这是我的代码,我试图只读取pgm文件的标题部分:
#!/usr/bin/perl
open(TEST, "baboon.pgm") or die "can't open \n";
binmode(TEST);
while(<TEST>){
if($counter<=7){
chomp;
print "$_ ";
$counter++;
}
else{
exit 0;
}
}
close(TEST);
答案 0 :(得分:0)
因为它是二进制文件,所以文件中没有换行符。 您可以使用slurp模式一次读取整个文件。 查看pgm的规范,标题值由空格分隔 其中可能包括空格,换行符和制表符。我使用正则表达式解析它时遇到了麻烦,似乎工作正常。
这个例子可以帮助你开始..
#!/usr/bin/perl
open(TEST, "baboon.pgm") or die "can't open \n";
binmode(TEST);
$/ = undef; # Slurp mode!
my $data = <TEST>;
close(TEST);
$data =~ /(..)\s([\d]+)\s([\d]+)\s([\d]+)/;
print "magic is $1\n";
print "width is $2\n";
print "heigh is $3\n";
print "maxval is $4\n";