GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  NUMBER::RECORDLOCATOR (3)

.ds Aq ’

NAME

Number::RecordLocator - Encodes integers into a short and easy to read and pronounce "locator string"

CONTENTS

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.

    canonicalize STRING

To compare a Record Locator string with another you can do:



  print "ALWAYS TRUE\n" if $generator->decode("B0") == $generator->decode("PO");



However, this method provides an alternative:



  my $rl_string = $generator->encode(725);
  print "ALWAYS TRUE\n" if $generator->canonicalize("b0") eq $rl_string;
  print "ALWAYS TRUE\n" if $generator->canonicalize("BO") eq $rl_string;
  print "ALWAYS TRUE\n" if $generator->canonicalize("P0") eq $rl_string;
  print "ALWAYS TRUE\n" if $generator->canonicalize("po") eq $rl_string;



This is primarily useful if you store the record locator rather than just the original integer and don’t want to have to decode your strings to do comparisons.

Takes a general Record Locator string and returns one with character mappings listed in DESCRIPTION applied to it. This allows string comparisons to work. This returns undef if a non-alphanumeric character is found in the string.

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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 NUMBER::RECORDLOCATOR (3) 2009-08-13

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.