my $wpi; BEGIN { if ($^O =~ m#MSWin#) { require Win32::Process::Info; $wpi = Win32::Process::Info->new; } } # code my $size; if ($wpi) { $size = ($wpi->GetProcInfo( $pid ))[0]->{'WorkingSetSize'}/1024; } else { open( my $ps,"ps -o rss= -p $pid |" ) or die "Could not ps -o rss= -p $pid: $!\n"; while (<$ps>) { $size = $1 if m#(\d+)#; } }