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
Number::RecordLocator(3) User Contributed Perl Documentation Number::RecordLocator(3)

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

    use Number::RecordLocator;

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

    # $string = "5RL2";

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

"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.

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

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

Takes an integer. Returns a Record Locator string.

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

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.

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>.

Jesse Vincent "<jesse@bestpractical.com>"

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.

2009-08-13 perl v5.32.1

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

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