## Create a test datafile of ~ 4MB perl -E"say 'x 'x10 for 1 .. 2e5" > junk.dat ## Then load it into an array of arrays using a while loop ## and check the memory consumed using the Task Manager or TOP perl -E"$n=0;$a[$n++]=[split] while $_=<>; " junk.dat ## On my system the process has used 214.8 MB ## Now do the same thing using map perl -E"@a=map[split],<>; " junk.dat ## On my system this process has used 345.1 MB.