File Coverage

blib/lib/Shannon/Entropy.pm
Criterion Covered Total %
statement 20 20 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod 1 1 100.0
total 27 27 100.0


line stmt bran cond sub pod time code
1             package Shannon::Entropy;
2              
3 2     2   143103 use 5.006;
  2         68  
4 2     2   11 use strict;
  2         3  
  2         36  
5 2     2   9 use warnings;
  2         4  
  2         73  
6              
7 2     2   782 use Import::Export;
  2         42595  
  2         14  
8              
9 2     2   76 use base qw/Import::Export/;
  2         5  
  2         350  
10              
11             our $VERSION = '1.101011';
12              
13             our %EX = (
14             entropy => [qw/all/]
15             );
16              
17             sub entropy {
18 5     5 1 607 my ($entropy, $len, $p, %t) = (0, length($_[0]));
19 5         64 $t{$_}++ foreach split '', $_[0];
20 5         20 foreach (values %t) {
21 57         64 $p = $_/$len;
22 57         73 $entropy -= $p * log $p;
23             }
24 5         113 return $entropy / log 2;
25             }
26              
27             1;
28              
29             __END__