Why not adopt me?
This distribution is up for adoption!
If you're interested then please contact the PAUSE module admins via
email.
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