od -x test显示:

0000000 457f 464c 0102 0001

现在,我想使用Perl创建此类文件。

open FH,'>','test_1';
#syswrite(FH,0x457f464c01020001); # not work
print FH 0x457f464c01020001;      # not work


如何在Perl中创建二进制文件?

最佳答案

要创建一个二进制文件,可以使用

open (my $fh, '>:raw', $qfn)


放置

45 7f 46 4c 01 02 00 01


在该文件中,可以使用以下任意一种:

# Starting with a string of those bytes.
print $fh "\x45\x7f\x46\x4c\x01\x02\x00\x01";

# Starting with a hex representation of the file.
print $fh pack('H*', '457f464c01020001');

# Starting with the bytes.
print $fh map chr, 0x45, 0x7f, 0x46, 0x4c, 0x01, 0x02, 0x00, 0x01;

# Starting with the bytes.
print $fh pack('C*', 0x45, 0x7f, 0x46, 0x4c, 0x01, 0x02, 0x00, 0x01);

关于perl - 如何在Perl中创建二进制文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9494383/

10-13 05:49