File Coverage

blib/lib/uni/perl/dumper.pm
Criterion Covered Total %
statement 29 39 74.3
branch 1 2 50.0
condition 0 3 0.0
subroutine 8 9 88.8
pod 0 3 0.0
total 38 56 67.8


line stmt bran cond sub pod time code
1             package uni::perl::dumper;
2              
3 1     1   6 use uni::perl;
  1         2  
  1         7  
4             m{
5             use strict;
6             use warnings;
7             }x;
8              
9             sub dumper_uni(@) {
10             eval {
11 1         455 require uni::dumper;
12 1 50   1 0 10 1} or do {
  0         0  
13 1         7 goto &dumper_dd;
14             };
15 1     1   5 no strict 'refs';
  1         2  
  1         118  
16 0         0 *{ caller().'::dumper' } = \&uni::dumper::dumper;
  0         0  
17 0         0 goto &{ caller().'::dumper' };
  0         0  
18             }
19              
20             sub dumper_dd (@) {
21 1     1 0 1089 require Data::Dumper;
22 1     1   4 no strict 'refs';
  1         2  
  1         299  
23 1         9 *{ caller().'::dumper' } = sub (@) {
24 1     1   10 my $s = Data::Dumper->new([@_])
25             #->Maxdepth(3)
26             ->Freezer('DUMPER_freeze')
27             ->Terse(1)
28             ->Indent(1)
29             ->Purity(0)
30             ->Useqq(1)
31             ->Quotekeys(0)
32             ->Dump;
33 1         125 $s =~ s/\\x\{([a-f0-9]{1,4})\}/chr hex $1/sge;
  12         44  
34 1         11 $s;
35 1         7719 };
36 1         3 goto &{ caller().'::dumper' };
  1         6  
37             }
38              
39             sub import {
40 0     0   0 my $me = shift;
41 0   0     0 my $caller = shift || caller;
42 0         0 $me->load($caller);
43 0         0 @_ = ('uni::perl');
44 0         0 goto &uni::perl::import;
45             }
46              
47             sub load {
48 1     1 0 3 my $me = shift;
49 1         1 my $caller = shift;
50 1     1   5 no strict 'refs';
  1         1  
  1         73  
51 1         2 *{ $caller .'::dumper' } = \&dumper_uni;
  1         5  
52 1         4 return;
53             }
54              
55             1;