open ( my $in_file, '<', "file" ); binmode( $in_file ); my $mem_file; binmode( $mem_file ); my ( $buf, $data, $n, $bytes ); while (( $n = read $in_file, $data, 4096 ) != 0){ $mem_file .= pack( "v*", unpack("n*", $data )); $bytes+=$n; } open ( my $otherMem_file, '<', \$mem_file ); binmode( $otherMem_file ); seek $otherMem_file, 0x00, 0; read $otherMem_file, my $temp, 0x1200; open my $out_file, '>', "reversed"; syswrite( $out_file, $temp);