File Coverage

blib/lib/uni/perl/xd.pm
Criterion Covered Total %
statement 28 36 77.7
branch 1 2 50.0
condition 0 3 0.0
subroutine 7 8 87.5
pod 0 2 0.0
total 36 51 70.5


line stmt bran cond sub pod time code
1             package uni::perl::xd;
2              
3 1     1   6 use uni::perl;
  1         2  
  1         8  
4             m{
5             use strict;
6             use warnings;
7             }x;
8              
9             sub xd ($;$) {
10 1 50   1 0 802 if( eval{ require Devel::Hexdump; 1 }) {
  1         397  
  0         0  
11 1     1   6 no strict 'refs';
  1         2  
  1         77  
12 0         0 *{ caller().'::xd' } = \&Devel::Hexdump::xd;
  0         0  
13             } else {
14 1     1   5 no strict 'refs';
  1         7  
  1         492  
15 1         7 *{ caller().'::xd' } = sub($;$) {
16 4     4   20 my @a = unpack '(H2)*', $_[0];
17 4         7 my $s = '';
18 4         13 for (0..$#a/16) {
19 4         41 $s .= "@a[ $_*16 .. $_*16 + 7 ] @a[ $_*16+8 .. $_*16 + 15 ]\n";
20             }
21 4         21 return $s;
22 1         8 };
23             }
24 1         4 goto &{ caller().'::xd' };
  1         6  
25             }
26              
27             sub import {
28 0     0   0 my $me = shift;
29 0   0     0 my $caller = shift || caller;
30 0         0 $me->load($caller);
31 0         0 @_ = ('uni::perl');
32 0         0 goto &uni::perl::import;
33             }
34              
35             sub load {
36 1     1 0 2 my $me = shift;
37 1         2 my $caller = shift;
38 1     1   6 no strict 'refs';
  1         2  
  1         94  
39 1         1 *{ $caller .'::xd' } = \&xd;
  1         6  
40 1         6 return;
41             }
42              
43             1;