package_size('main'); sub package_size { my($package) = shift ; require B::TerseSize ; print("Memory Usage for package $package\n\n"); my($subs, $opcount, $opsize) = B::TerseSize::package_size($package); print("Totals: $opsize bytes | $opcount OPs\n\n"); my($clen, $slen, $nlen); my @keys = map { $nlen = length > $nlen ? length : $nlen; $_; } ( sort { $subs->{$b}->{size} <=> $subs->{$a}->{size} } keys %$subs ); $clen = length $subs->{$keys[0]}->{count}; $slen = length $subs->{$keys[0]}->{size}; for my $name (@keys) { my $stats = $subs->{$name}; if ($name =~ /^my /) { printf "%-${nlen}s %${slen}d bytes\n", $name, $stats->{size} ; } else { printf "%-${nlen}s %${slen}d bytes | %${clen}d OPs\n", $name, $stats->{size}, $stats->{count} ; } } }