Set::Object::Weak(3) Sets without the referant reference increment


use Set::Object::Weak qw(weak_set);
my $set = Set::Object::Weak->new( 0, "", {}, [], $object );
# or
my $set = weak_set( 0, "", {}, [], $object );
print $set->size; # 2 - the scalars aren't objects


Sets, but weak. See ``weaken'' in Set::Object.

Note that the "set" in "Set::Object::Weak" returns weak sets. This is intentional, so that you can make all the sets in scope weak just by changing "use Set::Object" to "use Set::Object::Weak".


This class method is exactly the same as "Set::Object->new", except that it returns a weak set.
weak_set( ... )
This optionally exported function is a shortcut for saying "Set::Object::Weak->new(...)".
set( ... )
This method is exported so that if you see:

 use Set::Object qw(set);

You can turn it into using weak sets lexically with:

 use Set::Object::Weak qw(set);

Set::Object 1.19 had a bug in this method that meant that it would not add the passed members into it.


Perl magic by Sam Vilain, <[email protected]>

Idea from nothingmuch.