NAME
Data::SUID - Generates thread-safe sequential unique ids
VERSION
version 1.0.20
SYNOPSIS
use Data::SUID 'suid'; # Or use ':all' tag
use Data::Dumper;
$Data::Dumper::Indent = 0;
$Data::Dumper::Terse = 1;
my $suid = suid(); # Old school, or ...
my $suid = Data::SUID->new(); # Do it OOP style
print $suid->hex # 55de233819d51b1a8a67e0ac
print $suid->dec # 26574773684474770905501261996
print $suid->uuencode # ,5=XC.!G5&QJ*9^"L
print $suid->binary # 12 bytes of unreadable gibberish
print $suid # 55de233819d51b1a8a67e0ac
# Use the hex, dec, uuencode and binary methods as fire-and-forget
# constructors, if you prefer:
my $suid_hex = suid->hex; # If you just want the goodies
DESCRIPTION
Use this package to generate thread-safe 12-byte sequential unique ids modeled upon the MongoDB BSON ObjectId. Unlike traditional GUIDs, these are somewhat more index-friendly and reasonably suited for use as primary keys within database tables. They are guaranteed to have a high level of uniqueness, given that they contain a timestamp, a host identifier and an incremented sequence number.
METHODS
new
$suid = Data::SUID->new();
Generates a new SUID object.
hex
$string = $suid->hex();
$string = Data::SUID->hex();
$string = suid->hex();
Returns the SUID value as a 24-character hexadecimal string.
$string = "$suid";
The SUID object's stringification operation has been overloaded to give this value, too.
dec
$string = $suid->dec();
$string = Data::SUID->dec();
$string = suid->dec();
Returns the SUID value as a big integer.
uuencode
$string = $suid->uuencode();
$string = Data::SUID->uuencode();
$string = suid->uuencode();
Returns the SUID value as a UUENCODED string.
binary
$binstr = $suid->binary();
$binstr = Data::SUID->binary();
$binstr = suid->binary();
Returns the SUID value as 12 bytes of binary data.
EXPORTED FUNCTIONS
suid
my $suid = suid();
Generates a new SUID object.
REPOSITORY
BUG REPORTS
Please report any bugs to http://rt.cpan.org/
AUTHOR
Iain Campbell <cpanic@cpan.org>
COPYRIGHT AND LICENCE
Copyright (C) 2014-2015 by Iain Campbell
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.