File Coverage

blib/lib/Data/Translate.pm
Criterion Covered Total %
statement 19 66 28.7
branch 1 2 50.0
condition n/a
subroutine 5 14 35.7
pod 13 13 100.0
total 38 95 40.0


line stmt bran cond sub pod time code
1             package Data::Translate;
2              
3 1     1   594 use vars qw($VERSION);
  1         2  
  1         993  
4             $VERSION = '0.3';
5              
6             require Exporter;
7             @ISA = qw(Exporter);
8             @EXPORT = qw(a2b a2d a2h b2a b2d b2h d2a d2b d2h h2a h2b h2d new);
9             @EXPORT_OK = qw(a2b a2d a2h b2a b2d b2h d2a d2b d2h h2a h2b h2d new);
10              
11             sub new {
12 1     1 1 34 my $obj = {};
13 1         3 bless $obj;
14 1         3 return $obj;
15             }
16              
17             sub a2b {
18 1     1 1 7 shift;
19 1         5 local ($str)=@_;
20 1         7 my $ss=unpack("B*",$str);
21 1         4 return 1,$ss;
22             }
23              
24             sub a2d {
25 1     1 1 10 shift;
26 1         3 local ($str)=@_;
27 1         8 my @c=unpack("C" x length($str),$str);
28 1         6 return 1,@c;
29             }
30              
31             sub a2h {
32 0     0 1 0 shift;
33 0         0 local ($str)=@_;
34 0         0 my @h=unpack("H2" x length($str), pack("A*",$str));
35 0         0 return 1,@h;
36             }
37              
38             sub b2a {
39 1     1 1 10 shift;
40 1         3 local ($binstr)= @_;
41 1 50       12 if ($binstr=~/^[01]+$/) {
42 1         9 $as=unpack("A*", pack("B*", $binstr));
43 1         5 return 1,$as;
44             } else {
45 0           return -1,0;
46             }
47             }
48              
49             sub b2d {
50 0     0 1   shift;
51 0           local($v)=@_;my $a=$b=0;
  0            
52 0           $a=unpack("N", pack( "B32", "0" x 24 . $v));
53 0           return 1,$a;
54             }
55              
56             sub b2h {
57 0     0 1   shift;
58 0           local($v)=@_;
59 0           my $r=unpack("H8", pack("B8", $v));
60 0           return 1,$r;
61             }
62              
63             sub d2b {
64 0     0 1   shift;
65 0           local (@dec)=@_;
66 0           for ($i=0;$i<=$#dec;$i++) {
67 0           $dec[$i]=unpack("B*",pack("N",$dec[$i]));
68 0           $dec[$i]=~s/^0+(?=\d{8})//;
69             }
70 0           return 1,@dec;
71             }
72              
73             sub d2a {
74 0     0 1   shift;
75 0           local (@dec)=@_;
76 0           for ($i=0;$i<=$#dec;$i++) {
77 0           $dec[$i]=unpack("A*", pack("N", $dec[$i]));
78             }
79 0           return 1,@dec;
80             }
81              
82             sub d2h {
83 0     0 1   shift;
84 0           local $t=join("",@_);
85 0           local $tt=sprintf("%lx", $t);
86 0           return 1,$tt;
87             }
88              
89              
90             #HEX
91             sub h2b {
92 0     0 1   shift;
93 0           local (@hex)=@_;my $i;
  0            
94 0           for ($i=0;$i<=$#hex;$i++) {
95 0           $hex[$i]=unpack("B8", pack("H*", $hex[$i]));
96             }
97 0           return 1,@hex;
98             }
99              
100             sub h2d {
101 0     0 1   shift;
102 0           local (@hex)=@_;my $i;
  0            
103 0           for ($i=0;$i<=$#hex;$i++) {
104 0           $hex[$i]=ord(pack("H*", $hex[$i]));
105             }
106 0           return 1,@hex;
107             }
108              
109             sub h2a {
110 0     0 1   shift;
111 0           local (@hex)=@_;my $i;
  0            
112 0           for ($i=0;$i<=$#hex;$i++) {
113 0           $hex[$i]=unpack("A",pack("H8",$hex[$i]));
114             }
115 0           return 1,@hex;
116             }
117             1;
118             __END__