WeakRef is an API to the Perl weak references.
SYNOPSIS
use WeakRef;
for($i=0; $i{Y} = $y;
$y->{X} = $y;
weaken($x->{Y});
} # no memory leak
if(isweak($ref)) {
}
A patch to Perl 5.005_55 by the author implements a core API for weak references. This module is a Perl-level interface to that API, allowing weak references to be created in Perl.
A weak reference is just like an ordinary Perl reference except that it isn't included in the reference count of the thing referred to. This means that once all references to a particular piece of data are weak, the piece of data is freed and all the weak references are set to undef. This is particularly useful for implementing circular data structures without memory leaks or caches of objects.
The command
use WeakRef;
exports two symbols to the user's namespace by default: weaken and isweak. weaken takes a single argument, the reference to be weakened, and returns the same value. The idiom
weaken($this->{Thing}->{Parent} = $this);
is useful.
The isweak command takes a single parameter and returns true if the parameter is a weak reference, undef otherwise.
Requirements:
· Perl
Product's homepage
Requirements:
· Perl