| B-Hooks-EndOfScope documentation | Contained in the B-Hooks-EndOfScope distribution. |
B::Hooks::EndOfScope - Execute code after a scope finished compilation
on_scope_end { ... };
This module allows you to execute code when perl finished compiling the surrounding scope.
on_scope_end { ... };
on_scope_end $code;
Registers $code to be executed after the surrounding scope has been
compiled.
This is exported by default. See Sub::Exporter on how to customize it.
Florian Ragwitz <rafl@debian.org>
This software is copyright (c) 2010 by Florian Ragwitz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| B-Hooks-EndOfScope documentation | Contained in the B-Hooks-EndOfScope distribution. |
use strict; use warnings; package B::Hooks::EndOfScope; BEGIN { $B::Hooks::EndOfScope::AUTHORITY = 'cpan:FLORA'; } BEGIN { $B::Hooks::EndOfScope::VERSION = '0.09'; } # ABSTRACT: Execute code after a scope finished compilation use 5.008000; use Variable::Magic 0.34; use Sub::Exporter -setup => { exports => ['on_scope_end'], groups => { default => ['on_scope_end'] }, }; { my $wiz = Variable::Magic::wizard data => sub { [$_[1]] }, free => sub { $_->() for @{ $_[1] }; () }; sub on_scope_end (&) { my $cb = shift; $^H |= 0x020000; if (my $stack = Variable::Magic::getdata %^H, $wiz) { push @{ $stack }, $cb; } else { Variable::Magic::cast %^H, $wiz, $cb; } } } 1; __END__