File Coverage

blib/lib/Scope/OnExit/Wrap.pm
Criterion Covered Total %
statement 13 13 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 19 19 100.0


line stmt bran cond sub pod time code
1             package Scope::OnExit::Wrap;
2              
3 3     3   29110 use warnings;
  3         6  
  3         91  
4 3     3   18 use strict;
  3         6  
  3         102  
5              
6 3     3   19 use base 'Exporter';
  3         19  
  3         783  
7              
8             our $VERSION = '0.01';
9              
10             our @EXPORT = qw(on_scope_exit);
11              
12             our $_backend;
13              
14             if (!$ENV{SCOPE_ONEXIT_WRAP_PP} && eval { require Scope::OnExit }) {
15             Scope::OnExit->import;
16             $_backend = 'XS';
17             } else {
18 13     13 1 2269 eval <<'EOT';
  13     13   39  
  13         1718  
  13         50  
19             sub on_scope_exit (&) {
20             my ($code) = @_;
21             bless \$code, __PACKAGE__
22             }
23              
24             sub DESTROY {
25             my $self = shift;
26             $$self->();
27             }
28              
29             $_backend = 'PP';
30             EOT
31             die $@ if $@;
32             }
33              
34             'ok'
35              
36             __END__