logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Convert::BaseN - encoding and decoding of base{2,4,8,16,32,64} strings

Acknowledgements

       N/A

Author

       Dan Kogai, "<dankogai at dan.co.jp>"

Bugs

       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.

Export

       Nothing.  Instead of that, this module builds transcoderobject 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);

Name

       Convert::BaseN - encoding and decoding of base{2,4,8,16,32,64} strings

See Also

       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

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

           <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>

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);

Version

       $Id: BaseN.pm,v 0.1 2008/06/16 17:34:27 dankogai Exp dankogai $

See Also