GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  WEAKREF (3)

.ds Aq ’

NAME

WeakRef -- an API to the Perl weak references

CONTENTS

SYNOPSIS



        use WeakRef;

        for($i=0; $i<100000; $i++) {
                my $x = {};
                my $y = {};
                $x->{Y} = $y;
                $y->{X} = $y;
                weaken($x->{Y});
        } # no memory leak

        if(isweak($ref)) {
        }



DESCRIPTION

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.

BUGS

None known.

AUTHOR

Tuomas J. Lukka         lukka@iki.fi

Copyright (c) 1999 Tuomas J. Lukka. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.

BLATANT PLUG

This module and the patch to the core Perl were written in connection with the APress book ‘Tuomas J. Lukka’s Definitive Guide to Object-Oriented Programming in Perl’, to avoid explaining why certain things would have to be done in cumbersome ways.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WEAKREF (3) 1999-02-23

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.