NAME
UUID::FFI - Universally Unique Identifiers FFI style
VERSION
version 0.11
SYNOPSIS
my
$uuid
= UUID::FFI->new_random;
$uuid
->as_hex,
"\n"
;
DESCRIPTION
This module provides an FFI interface to libuuid
. libuuid
library is used to generate unique identifiers for objects that may be accessible beyond the local system
CONSTRUCTORS
new
my
$uuid
= UUID::FFI->new(
$hex
);
Create a new UUID object from the hex representation $hex
.
new_random
my
$uuid
= UUID::FFI->new_random;
Create a new UUID object with a randomly generated value.
new_time
my
$uuid
= UUID::FFI->new_time;
Create a new UUID object generated using the time and mac address. This can leak information about when and where the UUID was generated.
new_null
my
$uuid
= UUID::FFI->new_null;
Create a new UUID NULL UUID
object (all zeros).
METHODS
is_null
my
$bool
=
$uuid
->is_null;
Returns true if the UUID is NULL UUID
.
clone
my
$uuid2
=
$uuid
->clone;
Create a new UUID object with the identical value to the original.
as_hex
my
$hex
=
$uuid
->as_hex;
my
$hex
=
"$uuid"
;
Returns the hex representation of the UUID. The stringification of UUID::FFI uses this function, so you can also use it in a double quoted string.
compare
my
$cmp
=
$uuid1
->compare(
$uuid2
);
my
$cmp
=
$uuid1
<=>
$uuid2
;
my
@sorted_uuids
=
sort
{
$a
->compare(
$b
) }
@uuids
;
my
@sorted_uuids
=
sort
{
$a
<=>
$b
}
@uuids
;
Returns an integer less than, equal to or greater than zero if $uuid1
is found, respectively, to be lexicographically less than, equal, or greater that $uuid2
. The <=>
is also overloaded so you can use that too.
type
my
$type
=
$uuid
->type;
Returns the type of UUID, either time
or random
, if it can be identified.
variant
my
$variant
=
$uuid
->variant
Returns the variant of the UUID, either ncs
, dce
, microsoft
or other
.
time
my
$time
=
$uuid
->
time
;
Returns the time the UUID was generated. The value returned is in seconds since the UNIX epoch, so is compatible with perl builtins like time and localtime.
AUTHOR
Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014-2022 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.