logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

OSSP::uuid — OSSP uuid Perl Binding

Description

       OSSP  OSSP::uuid  is  a ISO-C:1999 application programming interface (API) and corresponding command line
       interface (CLI) for  the  generation  of  RFC  9562,  ISO/IEC  11578:1996  and  IETF  RFC-4122  compliant
       UniversallyUniqueIdentifier  (UUID).   It  supports DCE 1.1 variant UUIDs of version 1 (time and node
       based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name  based,  SHA-1).
       Additional API bindings are provided for the Perl:5 language.  Optional backward compatibility exists for
       the ISO-C DCE-1.1 and Perl Data::UUID APIs.

       OSSP::uuid is the Perl binding to the OSSP uuid API.  Three variants are provided:

   TIE-STYLEAPI
       The  TIE-style API is a functionality-reduced wrapper around the OO-style API and intended for very high-
       level convenience programming:

         use OSSP::uuid;
         tiemy$uuid,'OSSP::uuid::tie',$mode,...;
         $uuid = [ $mode, ... ];
         print "UUID=$uuid\n";
         untie $uuid;

   OO-STYLEAPI
       The OO-style API is a wrapper around the C-style API and intended for high-level regular programming.

         use OSSP::uuid;
         my$uuid=newOSSP::uuid;$uuid->load($name);$uuid->make($mode,...);$result=$uuid->isnil();$result=$uuid->compare($uuid2);$uuid->import($fmt,$data_ptr);$data_ptr=$uuid->export($fmt);[(]$str[,$rc)]=$uuid->error();$ver=$uuid->version();
         undef $uuid;

       Additionally, the strings "v1", "v3", "v4", "v5", "v6", "v7", and "mc" can  be  used  in  $mode  and  the
       strings "bin", "str", and "txt"$fmt.

   C-STYLEAPI
       The  C-style  API  is  a  direct mapping of the OSSP uuid ISO-C API to Perl and is intended for low-level
       programming.  See uuid(3) for a description of the functions and their expected arguments.

         use OSSP::uuid qw(:all);
         my$uuid;$rc=uuid_create($uuid);$rc=uuid_load($uuid,$name);$rc=uuid_make($uuid,$mode,...);$rc=uuid_isnil($uuid,$result);$rc=uuid_ismax($uuid,$result);$rc=uuid_compare($uuid,$uuid2,$result);$rc=uuid_import($uuid,$fmt,$data_ptr,$data_len);$rc=uuid_export($uuid,$fmt,$data_ptr,$data_len);$str=uuid_error($rc);$ver=uuid_version();$rc=uuid_destroy($uuid);

       Additionally, the following constants are exported for use in $rc, $mode, $fmt, and  $ver:  UUID_VERSION,
       UUID_LEN_BIN,  UUID_LEN_STR, UUID_RC_OK, UUID_RC_ARG, UUID_RC_MEM, UUID_RC_SYS, UUID_RC_INT, UUID_RC_IMP,
       UUID_MAKE_V1,  UUID_MAKE_V3,  UUID_MAKE_V4,  UUID_MAKE_V5,  UUID_MAKE_MC,   UUID_MAKE_V6,   UUID_MAKE_V7,
       UUID_FMT_BIN, UUID_FMT_STR, UUID_FMT_SIV, UUID_FMT_TXT.

Examples

       The  following  two examples create the version 3 UUID 02d9e6d5-9467-382e-8f9b-9300a64ac3cd, both via the
       OO-style and the C-style API.  Error handling is omitted here for easier reading, but has to be added for
       production-quality code.

       #   TIE-style API (very high-level)
       use OSSP::uuid;
       tie my $uuid, 'OSSP::uuid::tie';
       $uuid = [ "v1" ];
       print "UUIDs: $uuid, $uuid, $uuid\n";
       $uuid = [ "v3", "ns:URL", "http://www.ossp.org/" ];
       print "UUIDs: $uuid, $uuid, $uuid\n";
       untie $uuid;

       #   OO-style API (high-level)
       use OSSP::uuid;
       my $uuid    = new OSSP::uuid;
       my $uuid_ns = new OSSP::uuid;
       $uuid_ns->load("ns:URL");
       $uuid->make("v3", $uuid_ns, "http://www.ossp.org/");
       undef $uuid_ns;
       my $str = $uuid->export("str");
       undef $uuid;
       print "$str\n";

       #   C-style API (low-level)
       use OSSP::uuid qw(:all);
       my $uuid;    uuid_create($uuid);
       my $uuid_ns; uuid_create($uuid_ns);
       uuid_load($uuid_ns, "ns:URL");
       uuid_make($uuid, UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
       uuid_destroy($uuid_ns);
       my $str; uuid_export($uuid, UUID_FMT_STR, $str, undef);
       uuid_destroy($uuid);
       print "$str\n";

History

       The Perl binding OSSP::uuid to OSSP uuid  was  implemented  in  November  2004  by  Ralf  S.  Engelschall
       <rse@engelschall.com>.

ossp-uuid 1.6.4                                 December 9, 2024                               OSSP::uuid(3perl)

Name

       OSSP::uuid — OSSP uuid Perl Binding

See Also

uuid(1), uuid-config(1), uuid(3)

See Also