NAME
Math::Base::Convert - very fast base to base conversion
SYNOPSIS
As a function
use Math::Base::Convert qw( :all )
use Math::Base::Convert qw(
cnv
cnvabs
cnvpre
basemap
# comments
bin base 2 0,1
dna base 4 lower case dna
DNA base 4 upper case DNA
oct base 8 octal
dec base 10 decimal
hex base 16 lower case hex
HEX base 16 upper case HEX
b62 base 62
b64 base 64 month:C:12 day:V:31
m64 base 64 0-63 from MIME::Base64
iru base 64 P10 protocol - IRCu daemon
url base 64 url with no %2B %2F expansion of + - /
rex base 64 regular expression variant
id0 base 64 IDentifier style 0
id1 base 64 IDentifier style 1
xnt base 64 XML Name Tokens (Nmtoken)
xid base 64 XML identifiers (Name)
b85 base 85 RFC 1924 for IPv6 addresses
ascii base 96 7 bit printible 0x20 - 0x7F
);
my $converted = cnv($number,optionalFROM,optionalTO);
my $basemap = basmap(base);
As a method:
use Math::Base::Convert;
use Math::Base::Convert qw(:base);
my $bc = new Math::Base::Convert(optionalFROM,optionalTO);
my $converted = $bc->cnv($number);
my $basemap = $bc->basemap(base);
DESCRIPTION
This module provides fast functions and methods to convert between
arbitrary number bases from 2 (binary) thru 65535.
This module is pure Perl, has no external dependencies, and is backward
compatible with old versions of Perl 5.
PREFERRED USE
Setting up the conversion parameters, context and error checking consume
a significant portion of the execution time of a single base conversion.
These operations are performed each time cnv is called as a function.
Using method calls eliminates a large portion of this overhead and will
improve performance for repetitive conversions. See the benchmarks
sub-directory in this distribution.
BUILT IN NUMBER SETS
Number set variants courtesy of the authors of Math::Base:Cnv and
Math::BaseConvert.
The functions below return a reference to an array
$arrayref = function;
bin => ['0', '1'] # binary
dna => ['a','t','c','g'] # lc dna
DNA => ['A','T','C','G'], {default} # uc DNA
oct => ['0'..'7'] # octal
dec => ['0'..'9'] # decimal
hex => ['0'..'9', 'a'..'f'] # lc hex
HEX => ['0'..'9', 'A'..'F'] {default} # uc HEX
b62 => ['0'..'9', 'a'..'z', 'A'..'Z'] # base 62
b64 => ['0'..'9', 'A'..'Z', 'a'..'z', '.', '_'] # m:C:12 d:V:31
m64 => ['A'..'Z', 'a'..'z', '0'..'9', '+', '/'] # MIMI::Base64
iru => ['A'..'Z', 'a'..'z', '0'..'9', '[', ']'] # P10 - IRCu
url => ['A'..'Z', 'a'..'z', '0'..'9', '*', '-'] # url no %2B %2F
rex => ['A'..'Z', 'a'..'z', '0'..'9', '!', '-'] # regex variant
id0 => ['A'..'Z', 'a'..'z', '0'..'9', '_', '-'] # ID 0
id1 => ['A'..'Z', 'a'..'z', '0'..'9', '.', '_'] # ID 1
xnt => ['A'..'Z', 'a'..'z', '0'..'9', '.', '-'] # XML (Nmtoken)
xid => ['A'..'Z', 'a'..'z', '0'..'9', '_', ':'] # XML (Name)
b85 => ['0'..'9', 'A'..'Z', 'a'..'z', '!', '#', # RFC 1924
'
NAME Math::Base::Convert - very fast base to base conversion
SYNOPSIS As a function
As a method:
DESCRIPTION This module provides fast functions and methods to convert between arbitrary number bases from 2 (binary) thru 65535.
PREFERRED USE Setting up the conversion parameters, context and error checking consume a significant portion of the execution time of a single base conversion. These operations are performed each time cnv is called as a function.
BUILT IN NUMBER SETS Number set variants courtesy of the authors of Math::Base:Cnv and Math::BaseConvert.