Skip to content
/ UUID-FFI Public

Universally Unique Identifiers FFI style

Notifications You must be signed in to change notification settings

uperl/UUID-FFI

Repository files navigation

UUID::FFI linux macos

Universally Unique Identifiers FFI style

SYNOPSIS

my $uuid = UUID::FFI->new_random;
print $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.

About

Universally Unique Identifiers FFI style

Resources

Stars

Watchers

Forks

Packages

No packages published