]>
iEval git - convert-base91.git/blob - lib/Convert/Base91.pm
1 package Convert
::Base91
;
6 use parent qw
/Exporter/;
8 our @EXPORT_OK = qw
/encode_base91 decode_base91/;
11 our $VERSION = '0.001001';
14 XSLoader
::load
('Convert::Base91', $VERSION);
16 our $base91 = __PACKAGE__
->new;
20 $base91->encode($data);
26 $base91->decode($data);
37 Convert::Base91 - XS base91 encoding/decoding
41 use Convert::Base91 qw/encode_base91 decode_base91/;
43 # procedural interface
44 my $encoded = encode_base91 'some data';
45 say $encoded; # qrLg,W;Hr%w
46 my $decoded = decode_base91 $encoded;
47 say $decoded; # some data
51 my $base91 = Convert::Base91->new;
52 $base91->encode('some ');
53 $base91->encode('data');
54 my $enc = $base91->encode_end;
55 say $enc; # qrLg,W;Hr%w
57 $base91->decode('qrLg,');
58 $base91->decode('W;Hr%w');
59 my $dec = $base91->decode_end;
64 Base91 is a method for encoding binary data as printable ASCII
65 characters. Every two base91 characters (16 bits) encode 13 or 14 bits
66 of actual data, thus the overhead is between 14% and 23%, an
67 improvement over base64's overhead of 33%.
69 This module provides a procedural interface for encoding/decoding
70 whole strings and an OO interface for encoding/decoding in chunks.
72 The C<encode_base91> and C<decode_base91> functions are available for
73 export, but are not exported by default.
77 =item B<encode_base91> $binary_data
79 Takes a string containing arbitrary bytes and returns the
82 =item B<decode_base91> $base91_data
84 Takes a string containing base91 encoded data and returns the decoded
85 string of arbitrary bytes.
87 =item Convert::Base91->B<new>
89 Create a new C<Convert::Base91> object to keep the state for a chunk
90 encoding/decoding operation.
92 =item $base91->B<encode>($data)
94 Submit the next chunk of arbitrary binary data to be encoded. Returns
97 =item $base91->B<encode_end>
99 Signals that all chunks of data to be encoded have been submitted.
100 Returns the base91 encoded data, and clears the state of the $base91
101 object so it may be used again (for either encoding or decoding).
103 =item $base91->B<decode>($data)
105 Submit the next chunk of base91 data to be decoded. Returns nothing.
107 =item $base91->B<decode_end>
109 Signals that all chunks of data to be decoded have been submitted.
110 Returns the decoded data, and clears the state of the $base91 object
111 so it may be used again (for either encoding or decoding).
117 L<http://base91.sourceforge.net/>
121 Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
123 =head1 COPYRIGHT AND LICENSE
125 Copyright (C) 2017 by Marius Gavrilescu
127 This library is free software; you can redistribute it and/or modify
128 it under the same terms as Perl itself, either Perl version 5.26.1 or,
129 at your option, any later version of Perl 5 you may have available.
This page took 0.048093 seconds and 4 git commands to generate.