#!/usr/bin/perl sub mem { print "$_[0]:\n"; system "/bin/ps", "-osize,vsize", $$; } sub foo { mem(0); my $data; $data .= "xxxxxxxxxx" for 1..1_000_000; mem(1); return \$data; # return reference } my $r = foo(); # then get at the data using $$r mem(2); __END__ $ ./880173.pl 0: SZ VSZ 612 19804 1: SZ VSZ 10468 29660 2: SZ VSZ 10468 29660