Convert::BaseN - encoding and decoding of base{2,4,8,16,32,64} strings
$Id: BaseN.pm,v 0.1 2008/06/16 17:34:27 dankogai Exp dankogai $
use Convert::BaseN; # by name my $cb = Convert::BaseN->new('base64'); my $cb = Convert::BaseN->new( name => 'base64' ); # or base my $cb = Convert::BaseN->new( base => 64 ); my $cb_url = Convert::BaseN->new( base => 64, chars => '0-9A-Za-z\-_=' ); # encode and decode $encoded = $cb->encode($data); $decoded = $cb->decode($encoded);
Nothing. Instead of that, this module builds transcoder object for you and you use its decode and encode methods to get the job done.
decode
encode
Create the transcoder object.
# by name my $cb = Convert::BaseN->new('base64'); my $cb = Convert::BaseN->new( name => 'base64' ); # or base my $cb = Convert::BaseN->new( base => 64 ); my $cb_url = Convert::BaseN->new( base => 64, chars => '0-9A-Za-z\-_=' );
You can pick the decoder by name or create your own by specifying base and character map.
Must be 2, 4, 16, 32 or 64.
Specifiles the character map. The format is the same as tr.
tr
# DNA is coded that way. my $dna = Convert::BaseN->new( base => 4, chars => 'ACGT' );
Specifies if padding (adding '=' or other chars) is required when encoding. default is yes.
# url-safe Base64 my $b64url = Convert::BaseN->new( base => 64, chars => '0-9A-Za-z\-_=', padding => 0; );
When specified, the following pre-defined encodings will be used.
base 2 encoding. perl is 01110000011001010111001001101100.
perl
01110000011001010111001001101100
base 4 encodings. perl is:
base4: 1300121113021230 DNA: CTAACGCCCTAGCGTA RNA: GAUUGCGGGAUCGCAU
base 16 encoding. perl is 7065726c.
7065726c
base 32 encoding mentioned in RFC4648. perl is:
base32: OBSXE3A== base32hex: E1IN4R0==
base 64 encoding, as in MIME::Base64. They differ only in characters to represent number 62 and 63 as follows.
base64: +/ base64_url: -_ base64_imap: +, base64_ircu: []
for all predefined base 64 variants, decode accept ANY form of those.
Does decode
my $decoded = $cb->decode($data)
Does encode.
# line folds every 76 octets, like MIME::Base64::encode my $encoded = $cb->encode($data); # no line folding (compatibile w/ MIME::Base64) my $encoded = $cb->encode($data, ""); # line folding by CRLF, every 40 octets my $encoded = $cb->encode($data, "\r\n", 40);
RFC4648 http://tools.ietf.org/html/rfc4648
Wikipedia http://en.wikipedia.org/wiki/Base64
http://www.centricorp.com/papers/base64.htm
MIME::Base64
MIME::Base32
MIME::Base64::URLSafe
Dan Kogai, <dankogai at dan.co.jp>
<dankogai at dan.co.jp>
Please report any bugs or feature requests to bug-convert-basen at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Convert-BaseN. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-convert-basen at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc Convert::BaseN
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Convert-BaseN
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Convert-BaseN
CPAN Ratings
http://cpanratings.perl.org/d/Convert-BaseN
Search CPAN
http://search.cpan.org/dist/Convert-BaseN
N/A
Copyright 2008 Dan Kogai, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Convert::BaseN, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Convert::BaseN
CPAN shell
perl -MCPAN -e shell install Convert::BaseN
For more information on module installation, please visit the detailed CPAN module installation guide.