in reply to messing with memory

You could try Sys::Mmap. This seems to work for me:
#!/usr/bin/perl use strict; use warnings; use Fcntl qw(:DEFAULT O_ASYNC O_DIRECT); use Sys::Mmap; sysopen(my $FH,"/dev/mem", O_RDONLY, 0666) or die "Couldn't open /dev/mem\n"; my $mem; mmap($mem,1_000_000_000,PROT_READ,MAP_SHARED,$FH) or die "Couldn't mmap\n"; print "Billionth byte of memory: ",substr($mem,999_999_999,1),"\n";