NAME

Devel::Size - Perl extension for finding the memory usage of Perl variables

SYNOPSIS

  use Devel::Size qw(size total_size);

  my $size = size("A string");

  my @foo = (1, 2, 3, 4, 5);
  my $other_size = size(\@foo);

  my $foo = {a => [1, 2, 3],
	  b => {a => [1, 3, 4]}
         };
  my  $total_size = total_size($foo);

DESCRIPTION

This module figures out the real sizes of Perl variables in bytes. Call functions with a reference to the variable you want the size of. If the variable is a plain scalar it returns the size of the scalar. If the variable is a hash or an array, use a reference when calling.

FUNCTIONS

size($ref)

The size function returns the amount of memory the variable returns. If the variable is a hash or an array, it only reports the amount used by the structure, not the contents.

total_size($ref)

The total_size function will traverse the variable and look at the sizes of contents. Any references contained in the variable will also be followed, so this function can be used to get the total size of a multidimensional data structure. At the moment there is no way to get the size of an array or a hash and its elements without using this function.

EXPORT

None but default, but optionally size and total_size.

BUGS

Doesn't currently walk all the bits for code refs, globs, formats, and IO. Those throw a warning, but a minimum size for them is returned.

AUTHOR

Dan Sugalski dan@sidhe.org

SEE ALSO

perl(1).