NAME Convert::BaseN - encoding and decoding of base{2,4,8,16,32,64} strings VERSION $Id: README,v 0.1 2008/06/16 17:34:27 dankogai Exp dankogai $ SYNOPSIS 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); EXPORT Nothing. Instead of that, this module builds *transcoder object* for you and you use its "decode" and "encode" methods to get the job done. FUNCTIONS new 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. base Must be 2, 4, 16, 32 or 64. chars Specifiles the character map. The format is the same as "tr". # DNA is coded that way. my $dna = Convert::BaseN->new( base => 4, chars => 'ACGT' ); padding nopadding 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; ); name When specified, the following pre-defined encodings will be used. base2 base 2 encoding. "perl" is 01110000011001010111001001101100. base4 DNA RNA base 4 encodings. "perl" is: base4: 1300121113021230 DNA: CTAACGCCCTAGCGTA RNA: GAUUGCGGGAUCGCAU base 16 encoding. "perl" is "7065726c". base32 base32hex base 32 encoding mentioned in RFC4648. "perl" is: base32: OBSXE3A== base32hex: E1IN4R0== base64 base64_url base64_imap base64_ircu 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. decode Does decode my $decoded = $cb->decode($data) encode 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); SEE ALSO RFC4648 Wikipedia MIME::Base64 MIME::Base32 MIME::Base64::URLSafe AUTHOR Dan Kogai, "" BUGS Please report any bugs or feature requests to "bug-convert-basen at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT 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 * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * Search CPAN ACKNOWLEDGEMENTS N/A COPYRIGHT & LICENSE 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.