Simon Cozens > Devel-Pointer > Devel::Pointer

Download:
Devel-Pointer-1.00.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.00   Source  

NAME ^

Devel::Pointer - Fiddle around with pointers

SYNOPSIS ^

  use Devel::Pointer;
  $a = address_of($b);   # a = &b;
  $b = deref($a);        # b = *a;

  $a = unsmash_sv(0+$scalar_ref);
  @a = unsmash_av(0+$array_ref);
  %a = unsmash_hv(0+$hash_ref);
  &a = unsmash_cv(0+$code_ref); 
  # OK, you can't do that, but you get the idea

  $c = deref(-1);        # *(-1), and the resulting segfault.

DESCRIPTION ^

The primary purpose of this is to turn a smashed reference address back into a value. Once a reference is treated as a numeric value, you can't dereference it normally; although with this module, you can.

Be careful, though, to avoid dereferencing things that don't want to be dereferenced.

EXPORT

All of the above

AUTHOR ^

Simon Cozens, simon@cpan.org

SEE ALSO ^

Devel::Peek, perlref, B::Generate

syntax highlighting: