File Coverage

blib/lib/Acme/ZeroWidth.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 30 32 93.7


line stmt bran cond sub pod time code
1             package Acme::ZeroWidth;
2 2     2   59663 use 5.008001;
  2         17  
3 2     2   12 use strict;
  2         4  
  2         55  
4 2     2   11 use warnings;
  2         3  
  2         65  
5 2     2   11 use base 'Exporter';
  2         3  
  2         739  
6              
7             our $VERSION = "0.01";
8              
9             our @EXPORT_OK = qw(to_zero_width from_zero_width);
10              
11             sub to_zero_width {
12 1     1 0 1083 my ($visible) = @_;
13              
14             my $not_visible = join "\x{200d}",
15 1         5 map { s/1/\x{200b}/g; s/0/\x{200c}/g; $_ }
  1         4  
  1         4  
16 1         4 map { unpack 'B*', $_ } split //,
  1         5  
17             $visible;
18              
19 1         9 return $not_visible;
20             }
21              
22             sub from_zero_width {
23 1     1 0 2542 my ($not_visible) = @_;
24              
25 1         9 return join '', map { pack 'B*', $_ }
26 1         5 map { s/\x{200b}/1/g; s/\x{200c}/0/g; $_ } split /\x{200d}/, $not_visible;
  1         5  
  1         4  
  1         3  
27             }
28              
29             1;
30             __END__