NAME

   UUID::FFI - Universally Unique Identifiers FFI style

VERSION

   version 0.07

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 <[email protected]>

COPYRIGHT AND LICENSE

   This software is copyright (c) 2014 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.