如何用perl给一个二进制文件加‘000A’
有个二进制文件,没有换行符,我想每隔100个字符,加上'000A'换行标记
open (FDAT,$ARGV[0]) || die "error opening $ARGV[0]\n";
while (read(FDAT,$_,$totlen)) {
################## fill in the %s hash
$_=$_.'000A';
################ printout the %s hash;
print $_;
}
可是这样执行,文件没有变化。
[解决办法]
事情肯定能做,但还要考虑是否有意义!换行本身是属于文本文件的,也就是说文本文件才有换行的概念,二进制为什么要添加这个字符呢?
无论怎样,你可以读出来100个字节在加上换行,再写入文件。该操作不能在文件原地操作,可以先写一个新文件,在存为源文件名。
在perl中你需要pack和unpack来处理二进制。
[解决办法]
你根本就没写文件的操作。有变化就怪了。