use strict; use warnings; use File::Slurp; my $read_file = read_file( "file" ); #read_file my $memory_file; #declare memory file my ( $buf, $data, $n, $bytes ); #declare variables while (( $n = read $read_file, $data, 4096 ) != 0 ) { print $memory_file, pack( "v*", unpack("n*", $data )); #byte reverses $bytes+=$n; } open ( my $write_file, ">", "reversed" ); #writes byte reversed memory file to syswrite ( $write_file, $memory_file ); #disk AFTER it byte reverses in #memory. read ( $memory_file, $stuff, 0x200 ); #should return a value but doesnt print ( $stuff ); #### 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);