Convert-BaseN

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

      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

README  view on Meta::CPAN

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

lib/Convert/BaseN.pm  view on Meta::CPAN

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

=head1 EXPORT

Nothing.  Instead of that, this module builds I<transcoder object> for
you and you use its C<decode> and C<encode> methods to get the job
done.

=head1 FUNCTIONS

=head2 new

lib/Convert/BaseN.pm  view on Meta::CPAN

for all predefined base 64 variants, C<decode> accept ANY form of those.

=back

=back

=head2 decode

Does decode

  my $decoded = $cb->decode($data)

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

t/02-base64.t  view on Meta::CPAN

#
# $Id: 02-base64.t,v 0.1 2008/06/16 17:34:27 dankogai Exp dankogai $
#

use strict;
use warnings;
use Test::More tests => 20;
#use Test::More qw/no_plan/;
use Convert::BaseN;

my $decoded = "\xFB\xFF\xBF";

my %encoded = (
    base64       => '+/+/',
    base64_url   => '-_-_',
    base64_imap  => '+,+,',
    base64_ircu  => '[][]',
);

for my $name (sort keys %encoded){
    my $cb = Convert::BaseN->new($name);
    my $encoded = $encoded{$name};
    is $cb->encode($decoded, ''), $encoded, qq($name: $encoded);
    for my $to (sort keys %encoded){
	my $b64 = Convert::BaseN->new($to);
	is $b64->decode($encoded), $decoded, qq($name -> $to);
    }
}




( run in 0.297 second using v1.01-cache-2.11-cpan-26ccb49234f )