Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: Does Scope of Referenced Array Matter?

by repellent (Priest)
on Feb 20, 2012 at 22:22 UTC ( #955170=note: print w/replies, xml ) Need Help??

in reply to Does Scope of Referenced Array Matter?

It may be interesting to note how reference count grows. Here's an example of reference counts to the scalar $a, with explanation in comments:
use Devel::Peek qw(SvREFCNT); my $a = 9; # 1 = $a is an SV of an IV with refcnt of + 1 warn SvREFCNT($a), "\n"; my $b = \$a; # 2 = (anonymous) scalar ref maintained b +y $b warn SvREFCNT($a), "\n"; my $d = my $c = $b; # 4 = two more ref copies made warn SvREFCNT($a), "\n"; my $f = my $e = \$b; # 4 = $a unaffected by references _to_ $b warn SvREFCNT($a), "\n"; my $g = [ $a ]; # 4 = copy of value $a in array warn SvREFCNT($a), "\n"; my $h = [ $c ]; # 5 = copy of ref to $a in array warn SvREFCNT($a), "\n"; my $i = sub { $b, $c, $e }; # 5 = $a unaffected by closure over _refs +_ to $a warn SvREFCNT($a), "\n"; my $j = sub { $a, $a, $a }; # 6 = closure over actual lexical $a warn SvREFCNT($a), "\n"; undef $_ for $b, $c, $d, $h, $j; # 1 = kill all refcnt contributors ( +except for $a itelf) warn SvREFCNT($a), "\n";

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://955170]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2017-09-24 12:52 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (274 votes). Check out past polls.