The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Number::RecordLocator - [One line description of module's purpose here]

SYNOPSIS

    use Number::RecordLocator;

    my $generator = Number::RecordLocator->new();
    my $string = $generator->encode("123456");

    # $string = "5RL2";

    my $number = $generator->decode($string);
  
    # $number = "123456";

    

DESCRIPTION

Number::RecordLocator encodes integers into a 32 character "alphabet" designed to be short and easy to read and pronounce. The encoding maps:

    0 to O
    1 to I
    S to F 
    B to P

With a 32 bit encoding, you can map 33.5 million unique ids into a 5 character code.

This certainly isn't an exact science and I'm not yet 100% sure of the encoding. Feedback is much appreciated.

new

Instantiate a new Number::RecordLocator object. Right now, we don't actually store any object-specific data, but in the future, we might.

init

Initializes our integer to character and character to integer mapping tables.

encode INTEGER

Takes an integer. Returns a Record Locator string.

decode STRING

Takes a record locator string and returns an integer. If you pass in a string containing an invalid character, it returns undef.

BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests to bug-number-recordlocator@rt.cpan.org, or through the web interface at http://rt.cpan.org.

AUTHOR

Jesse Vincent <jesse@bestpractical.com>

LICENCE AND COPYRIGHT

Copyright (c) 2006, Best Practical Solutions, LLC. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.