File Coverage

blib/lib/String/UTF8/MD5.pm
Criterion Covered Total %
statement 18 22 81.8
branch 0 2 0.0
condition n/a
subroutine 6 7 85.7
pod 1 1 100.0
total 25 32 78.1


line stmt bran cond sub pod time code
1             package String::UTF8::MD5;
2              
3 1     1   15751 use 5.006;
  1         3  
  1         39  
4 1     1   4 use strict;
  1         1  
  1         33  
5 1     1   4 use warnings FATAL => 'all';
  1         4  
  1         70  
6 1     1   6 use Digest::MD5;
  1         1  
  1         38  
7 1     1   605 use Encode;
  1         8513  
  1         87  
8 1     1   6 use base qw(Exporter);
  1         2  
  1         158  
9              
10             our $EXPORT_OK = qw(md5);
11              
12             =head1 NAME
13              
14             String::UTF8::MD5 - UTF-8-safe md5sums of strings
15              
16             =head1 VERSION
17              
18             Version 0.01
19              
20             =cut
21              
22             our $VERSION = '0.01';
23              
24              
25             =head1 SYNOPSIS
26              
27             This is a simple UTF8-safe wrapper around Crypt::MD5, for use with utf-8 strings.
28              
29             use String::
30              
31             =head1 EXPORT
32              
33             =head2 md5 may be exported if requested
34              
35             =head1 SUBROUTINES/METHODS
36              
37             =head2 md5
38              
39             =cut
40              
41             sub md5 {
42 0     0 1   my ($string) = @_;
43              
44             # remove utf-8 encoding
45 0 0         if (Encode::is_utf8($string)) {
46 0           $string = Encode::encode_utf8($string);
47             }
48              
49 0           return Digest::MD5::md5_hex($string);
50             }
51              
52             =head1 AUTHOR
53              
54             Binary.com, C<< >>
55              
56             =head1 TODO
57              
58             Only hex notation is currently supported. In the future we need to add additional
59             formatting options.
60              
61             =head1 BUGS
62              
63             Please report any bugs or feature requests to C, or through
64             the web interface at L. I will be notified, and then you'll
65             automatically be notified of progress on your bug as I make changes.
66              
67              
68              
69              
70             =head1 SUPPORT
71              
72             You can find documentation for this module with the perldoc command.
73              
74             perldoc String::UTF8::MD5
75              
76              
77             You can also look for information at:
78              
79             =over 4
80              
81             =item * RT: CPAN's request tracker (report bugs here)
82              
83             L
84              
85             =item * AnnoCPAN: Annotated CPAN documentation
86              
87             L
88              
89             =item * CPAN Ratings
90              
91             L
92              
93             =item * Search CPAN
94              
95             L
96              
97             =back
98              
99              
100             =head1 ACKNOWLEDGEMENTS
101              
102              
103             =head1 LICENSE AND COPYRIGHT
104              
105             Copyright 2015 Binary.com.
106              
107             This program is free software; you can redistribute it and/or modify it
108             under the terms of the the Artistic License (2.0). You may obtain a
109             copy of the full license at:
110              
111             L
112              
113             Any use, modification, and distribution of the Standard or Modified
114             Versions is governed by this Artistic License. By using, modifying or
115             distributing the Package, you accept this license. Do not use, modify,
116             or distribute the Package, if you do not accept this license.
117              
118             If your Modified Version has been derived from a Modified Version made
119             by someone other than you, you are nevertheless required to ensure that
120             your Modified Version complies with the requirements of this license.
121              
122             This license does not grant you the right to use any trademark, service
123             mark, tradename, or logo of the Copyright Holder.
124              
125             This license includes the non-exclusive, worldwide, free-of-charge
126             patent license to make, have made, use, offer to sell, sell, import and
127             otherwise transfer the Package with respect to any patent claims
128             licensable by the Copyright Holder that are necessarily infringed by the
129             Package. If you institute patent litigation (including a cross-claim or
130             counterclaim) against any party alleging that the Package constitutes
131             direct or contributory patent infringement, then this Artistic License
132             to you shall terminate on the date that such litigation is filed.
133              
134             Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER
135             AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
136             THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
137             PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY
138             YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR
139             CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
140             CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE,
141             EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
142              
143              
144             =cut
145              
146             1; # End of String::UTF8::MD5