View on
MetaCPAN
Jeff Ober > Filter-Cleanup > Filter::Cleanup

Download:
Filter-Cleanup-0.03.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.03   Source  

NAME ^

Filter::Cleanup - Execute cleanup statements when scope closes, regardless of errors

VERSION ^

version 0.03

SYNOPSIS ^

  use Filter::Cleanup;

  open my $fh, $file_path or die $!;
  cleanup { close $fh };
  do_risky_stuff_with_fh($fh);

DESCRIPTION ^

Defines a block of code to be evaluated once the current scope has completed execution. If an error is thrown during the execution of statements after the cleanup block, the error is trapped and rethrown after the cleanup block is executed.

NAME ^

Filter::Cleanup

CAVEATS ^

ORDERING OF CLEANUP BLOCKS

A cleanup block will execute ahead of any cleanups defined before it. That is, for a given scope, cleanup blocks will be called in the opposite order in which they were declared.

IMPLEMENTATION

This module was originally implemented as a source filter (hence the name), but now uses Keyword::Declare.

SEE ALSO ^

Guard

Guard is implemented in XS and attaches a code block to the actual stack frame, ensuring it is executed regardless of how the scope was exited. In many cases, this may be preferable to the behavior of Filter::Cleanup, which will not be executed if the block calls exit or goto (note that last is handled correctly).

AUTHOR ^

Jeff Ober sysread@fastmail.fm

LICENSE ^

Perl5

AUTHOR ^

Jeff Ober <sysread@fastmail.fm>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2017 by Jeff Ober.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: