ede*_*dem 2 perl byte file endianness bit
例如,有一个.jpg文件或其他文件.我想一点一点地读它.我这样做:
open(FH, "<", "red.jpg") or die "Error: $!\n";
my $str;
while(<FH>) {
$str .= unpack('B*', $_);
}
close FH;
Run Code Online (Sandbox Code Playgroud)
好吧,它给了我$ 010与0101001的文件.之后我这样做:
open(AB, ">", "new.jpg") or die "Error: $!\n";
binmode(AB);
print AB $str;
close AB;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我该怎么做?以及如何做到这一点,无论字节顺序如何(跨平台)?
问题:
binmode在阅读时使用.unpack.
open(my $FH, "<", "red.jpg")
or die("Can't open red.jpg: $!\n");
binmode($FH);
my $file; { local $/; $file = <$FH>; }
my $binary = unpack('B*', $file);
open(my $FH, ">", "new.jpg")
or die("Can't create new.jpg: $!\n");
binmode($FH);
print $FH pack('B*', $binary);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1577 次 |
| 最近记录: |