summaryrefslogtreecommitdiff
path: root/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
diff options
context:
space:
mode:
Diffstat (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm')
-rw-r--r--systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm65
1 files changed, 65 insertions, 0 deletions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
new file mode 100644
index 0000000000..bd34fc81b2
--- /dev/null
+++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm
@@ -0,0 +1,65 @@
+package autodie::Scope::Guard;
+
+use strict;
+use warnings;
+
+# ABSTRACT: Wrapper class for calling subs at end of scope
+our $VERSION = '2.29'; # VERSION
+
+# This code schedules the cleanup of subroutines at the end of
+# scope. It's directly inspired by chocolateboy's excellent
+# Scope::Guard module.
+
+sub new {
+ my ($class, $handler) = @_;
+ return bless($handler, $class);
+}
+
+sub DESTROY {
+ my ($self) = @_;
+
+ $self->();
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+autodie::Scope::Guard - Wrapper class for calling subs at end of scope
+
+=head1 SYNOPSIS
+
+ use autodie::Scope::Guard;
+ $^H{'my-key'} = autodie::Scope::Guard->new(sub {
+ print "Hallo world\n";
+ });
+
+=head1 DESCRIPTION
+
+This class is used to bless perl subs so that they are invoked when
+they are destroyed. This is mostly useful for ensuring the code is
+invoked at end of scope. This module is not a part of autodie's
+public API.
+
+This module is directly inspired by chocolateboy's excellent
+Scope::Guard module.
+
+=head2 Methods
+
+=head3 new
+
+ my $hook = autodie::Scope::Guard->new(sub {});
+
+Creates a new C<autodie::Scope::Guard>, which will invoke the given
+sub once it goes out of scope (i.e. its DESTROY handler is called).
+
+=head1 AUTHOR
+
+Copyright 2008-2009, Paul Fenwick E<lt>pjf@perltraining.com.auE<gt>
+
+=head1 LICENSE
+
+This module is free software. You may distribute it under the
+same terms as Perl itself.