NAME
Math::BaseMulti - a perl module for creating identifiers with a per digit base
SYNOPSIS
use Math::BaseMulti;
$mbm = Math::BaseMulti->new(
digits => [
[ 0..9, 'A'..'Z' ],
[ 0..9, 'A'..'Z' ],
[ 0..9, 'A'..'Z' ],
[ 0..9 ],
],
);
$mbm->to( 10 ); # will return "10"
$mbm->to( 1000 ); # will return "2S0"
$mbm->from( 'BA0' ); # will return 133310
--
$mbm = Math::BaseMulti->new(
digits => [
[ 'S' ],
[ 'N' ],
[ 0..9,'A'..'F','H','J','K','M','N','P','R'..'Z' ],
[ 0..9,'A'..'F','H','J','K','M','N','P','R'..'Z' ],
[ 0..9,'A'..'F','H','J','K','M','N','P','R'..'Z' ],
[ 0..9,'A'..'F','H','J','K','M','N','P','R'..'Z' ],
[ 0..9,'A'..'F','H','J','K','M','N','P','R'..'Z' ],
[ 'A'..'Z' ],
],
leading_zero => 1,
);
$mbm->to( 0 ); # will return "SN00000A"
$mbm->to( 1 ); # will return "SN00000B"
$mbm->to( 1000 ); # will return "SN00017M"
DESCRIPTION
Math::BaseMulti can be used to create identifiers with a base defined per digit.
The module provides conversion to/from such identifiers.
METHODS
new()
Creates an object instance.
Accepts parameters 'digits' and 'leading_zero'. For description see methods below.
from()
Expects a string in the format of defined by the parameter 'digits' and converts it to an Int value.
to()
Expects an Int value and converts it to a string in the format defined by the 'digits' parameter.
digits()
Accepts an array of arrays.
Each element in the the first array repersents a digit. From high to low. (Little-Endian) Each subarray contains a list of possible characters. The value will be the index of the character in this array. first element => 0, second element => 1, ...
leading_zero()
Defines if to() should always add padding zeros values.
DEPENDENCIES
Math::BaseMulti requires Moose.
COPYRIGHT AND LICENSE
Copyright 2012-2013 by Markus Benning
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.