use File::Slurp; open my $in_file, '<', "file"; binmode($file); open ( my $out_file, '>', "reversed" ); binmode($out_file); my ( $buf, $data, $n, $bytes ); while (( $n = read $in_file, $data, 4096 ) != 0 ) { syswrite $out_file, pack( "v*", unpack("n*", $data )); $bytes+=$n; } #### use File::Slurp; open ( my $in_file, '<', "file" ); binmode( $file ); my $temp; open my $mem_file, '>', \$temp; binmode( $mem_file ); my ( $buf, $data, $n, $bytes ); while (( $n = read $in_file, $data, 4096 ) != 0 ) { syswrite $mem_file, pack( "v*", unpack("n*", $data )); $bytes+=$n; } open ( my $out_file, '>', "reversed" ); binmode( $out_file ); syswrite ( $out_file, $mem_file );