How to copy binary files in Perl program -
i have below perl code make copy of binary file have.
$in = "test_file_binary.exe"; $out = "test_out_binary.exe"; open(in,$in) || die "error opening ip file: $!" ; open(out,">$out") || die "error opening op file: $!" ; while(<in>) { #chomp; print out $_; } close(in); close(out); but version of code, output binary file of more size input binary file size, because perl code seems add 0x0d (carriage return) character before 0x0a (newline) character in input file, not there.
if use chomp , removed valid 0x0a characters present, , did not put them in output file.
1] how can fix in code above.
2] how can solve using file::copy module, example code snip useful.
thank you.
-ad
always use three-arg open.
open in, '<:raw', $in or die "couldn't open <$in: $!"; open out, '>:raw', $out or die "couldn't open >$out: $!"; ($len, $data); while ($len = sysread in, $data, 4096) { syswrite out, $data, $len; } defined $len or die "failed reading in: $!" however, file::copy easy use don't understand why wouldn't.
use file::copy; copy($in, $out) or die "copy failed: $!";
Comments
Post a Comment