chocolateboy > Scope-Guard-0.03 > Scope::Guard

Download:
Scope-Guard-0.03.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  1
View Bugs
Report a bug
Module Version: 0.03   Source  

NAME ^

Scope::Guard - lexically scoped resource management

SYNOPSIS ^

        my $sg = Scope::Guard->new(sub { ... });

          # or

        my $sg = Scope::Guard->new(\&handler);

        $sg->dismiss(); # disable the handler

DESCRIPTION ^

This module provides a convenient way to perform cleanup or other forms of resource management at the end of a scope. It is particularly useful when dealing with exceptions: the Scope::Guard constructor takes a reference to a subroutine that is guaranteed to be called even if the thread of execution is aborted prematurely. This effectively allows lexically-scoped "promises" to be made that are automatically honoured by perl's garbage collector.

For more information, see: http://www.cuj.com/documents/s=8000/cujcexp1812alexandr/

new

usage

    my $sg = Scope::Guard->new(sub { ... });

          # or

    my $sg = Scope::Guard->new(\&handler);

description

Create a new Scope::Guard object which calls the supplied handler when its DESTROY method is called, typically when it goes out of scope.

dismiss

usage

    $sg->dismiss();

          # or

    $sg->dismiss(1);

description

Detach the handler from the Scope::Guard object. This revokes the "promise" to call the handler when the object is destroyed.

The handler can be re-enabled by calling:

        $sg->dismiss(0);

VERSION ^

0.03

SEE ALSO ^

AUTHOR ^

chocolateboy: <chocolate.boy@email.com>

COPYRIGHT ^

Copyright (c) 2005-2007, chocolateboy.

This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.