ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Devel-FindRef/FindRef.pm
(Generate patch)

Comparing Devel-FindRef/FindRef.pm (file contents):
Revision 1.21 by root, Fri Jun 26 14:47:03 2009 UTC vs.
Revision 1.27 by root, Thu Apr 5 05:11:14 2012 UTC

1package Devel::FindRef; 1package Devel::FindRef;
2 2
3no warnings; # I hate warning nazis 3use common::sense;
4use strict;
5 4
6use XSLoader; 5use XSLoader;
7use Scalar::Util; 6use Scalar::Util;
8 7
9BEGIN { 8BEGIN {
10 our $VERSION = '1.4'; 9 our $VERSION = '1.422';
11 XSLoader::load __PACKAGE__, $VERSION; 10 XSLoader::load __PACKAGE__, $VERSION;
12} 11}
13 12
14=head1 NAME 13=head1 NAME
15 14
60The output is as follows (or similar to this, in case I forget to update 59The output is as follows (or similar to this, in case I forget to update
61the manpage after some changes): 60the manpage after some changes):
62 61
63 SCALAR(0x7cc888) [refcount 6] is 62 SCALAR(0x7cc888) [refcount 6] is
64 +- referenced by REF(0x8abcc8) [refcount 1], which is 63 +- referenced by REF(0x8abcc8) [refcount 1], which is
65 | in the lexical '$closure_var' in CODE(0x8abc50) [refcount 4], which is 64 | the lexical '$closure_var' in CODE(0x8abc50) [refcount 4], which is
66 | +- the closure created at tst:18. 65 | +- the closure created at tst:18.
67 | +- referenced by REF(0x7d3c58) [refcount 1], which is 66 | +- referenced by REF(0x7d3c58) [refcount 1], which is
68 | | in the lexical '$closure' in CODE(0x7ae530) [refcount 2], which is 67 | | the lexical '$closure' in CODE(0x7ae530) [refcount 2], which is
69 | | +- the containing scope for CODE(0x8ab430) [refcount 3], which is 68 | | +- the containing scope for CODE(0x8ab430) [refcount 3], which is
70 | | | in the global &Test::testsub. 69 | | | the global &Test::testsub.
71 | | +- the main body of the program. 70 | | +- the main body of the program.
72 | +- in the lexical '&' in CODE(0x7ae530) [refcount 2], which was seen before. 71 | +- the lexical '&' in CODE(0x7ae530) [refcount 2], which was seen before.
73 +- referenced by REF(0x7cc7c8) [refcount 1], which is 72 +- referenced by REF(0x7cc7c8) [refcount 1], which is
74 | in the lexical '$global_my' in CODE(0x7ae530) [refcount 2], which was seen before. 73 | the lexical '$global_my' in CODE(0x7ae530) [refcount 2], which was seen before.
75 +- in the global $Test::var. 74 +- the global $Test::var.
76 +- referenced by REF(0x7cc558) [refcount 1], which is 75 +- referenced by REF(0x7cc558) [refcount 1], which is
77 | in the member 'ukukey2' of HASH(0x7ae140) [refcount 2], which is 76 | the member 'ukukey2' of HASH(0x7ae140) [refcount 2], which is
78 | +- referenced by REF(0x8abad0) [refcount 1], which is 77 | +- referenced by REF(0x8abad0) [refcount 1], which is
79 | | in the lexical '$testsub_local' in CODE(0x8ab430) [refcount 3], which was seen before. 78 | | the lexical '$testsub_local' in CODE(0x8ab430) [refcount 3], which was seen before.
80 | +- referenced by REF(0x8ab4f0) [refcount 1], which is 79 | +- referenced by REF(0x8ab4f0) [refcount 1], which is
81 | in the global $Test::global_hashref. 80 | the global $Test::global_hashref.
82 +- referenced by REF(0x7ae518) [refcount 1], which is 81 +- referenced by REF(0x7ae518) [refcount 1], which is
83 | in the member 'ukukey' of HASH(0x7d3bb0) [refcount 1], which is 82 | the member 'ukukey' of HASH(0x7d3bb0) [refcount 1], which is
84 | in the global %Test::global_hash. 83 | the global %Test::global_hash.
85 +- referenced by REF(0x7ae2f0) [refcount 1], which is 84 +- referenced by REF(0x7ae2f0) [refcount 1], which is
86 a temporary on the stack. 85 a temporary on the stack.
87 86
88It is a bit convoluted to read, but basically it says that the value 87It is a bit convoluted to read, but basically it says that the value
89stored in C<$var> is referenced by: 88stored in C<$var> is referenced by:
206call on valid addresses, but extremely dangerous to call on invalid ones. 205call on valid addresses, but extremely dangerous to call on invalid ones.
207 206
208 # we know that HASH(0x176ff70) exists, so turn it into a hashref: 207 # we know that HASH(0x176ff70) exists, so turn it into a hashref:
209 my $ref_to_hash = Devel::FindRef::ptr2ref 0x176ff70; 208 my $ref_to_hash = Devel::FindRef::ptr2ref 0x176ff70;
210 209
211=item $ref = Devel::FindRef::ref2ptr $reference 210=item $ptr = Devel::FindRef::ref2ptr $reference
212 211
213The opposite of C<ptr2ref>, above: returns the internal address of the 212The opposite of C<ptr2ref>, above: returns the internal address of the
214value pointed to by the passed reference. I<No checks whatsoever will be 213value pointed to by the passed reference. I<No checks whatsoever will be
215done>, so don't use this. 214done>, so don't use this.
216 215

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines