I have this working on Alpha with (5.16.2) and without (5.10.0) 64 bit
integer support, and on VAX (5.8.4).

Before uploading this to CPAN I'm curious if anyone has a solution for 'mmk
zipdist' mangling the case of filenames.  The PAUSE server wants to extract
certain files from the distribution but can't find them because of case
differences.

NAME
    VMS::Time - Manipulate OpenVMS binary time values

SYNOPSIS
      use VMS::Time ':all';

      $now = gettim();
      $bin = bintim('01-jan-2010 12:00:00.00');
      $asc = asctim($bin);
      ($year, $month, $day, $hr, $mn, $sc, $cc) = numtim($bin);
      $unix = vms_to_epoch($bin);
      $vms = epoch_to_vms(time());

DESCRIPTION
    These functions provide access to the OpenVMS time system services
    SYS$GETTIM, SYS$BINTIM, SYS$ASCTIM, and SYS$NUMTIM. Also provided are
    functions for converting between OpenVMS binary times and unix epoch
    time values.

  EXPORT
    None by default. Any function or constant may be imported by name. All
    functions can be imported using the tag ':routines'. All constants can
    be imported using the tag ':constants'. Routines and constants can be
    imported using the tag ':all'.

OVERVIEW
    VMS::Time can accept and return VMS times in various formats depending
    upon the platform and how perl was built. The routines that return VMS
    time values accept a return mode argument that determines the format for
    the returned value. Constants are defined for the return modes as
    follows.

    PACK - Pack format (default)
        Returns the time as a string containing an 8 byte OpenVMS time
        value.

    LONGINT - Integer
        Returns the time value as an integer. This is only supported if perl
        was built with support for long integers.

    FLOAT - Floating point
        Returns the time value as a floating point number. Precision may be
        lost especially if perl was not built with support for long doubles.
        FLOAT is not supported on VAX systems.

    HEX - Hex string
        Returns the time value as a hex encoded string with a leading '0x'.

    BIGINT - Math::BigInt
        Returns the time value as a Math::BigInt object. Math::BigInt must
        have been previously loaded.

    The format for input VMS time values is deduced from the attributes of
    the perl variable passed to the function. If the variable contains an
    integer, LONGINT format is assumed. If the variable containes a floating
    point value, FLOAT format is assumed. If the variable is a string with a
    leading '0x', HEX format is assumed. If the variable is an 8 byte
    string, PACK format is assumed. If the variable is a Math::BigInt
    object, BIGINT format is assumed.

  FUNCTIONS
    bintim - convert ascii time string to binary

        $bin = bintim('01-jan-2010 12:00:00.00'[,$retmode]);

    Converts the time string to a VMS time value. $retmode indicates the
    format for the returned value as described in the overview section.

    asctim - convert binary time to ascii string

        $text = asctim([$bin])

    Converts an OpenVMS time to its textual presentation. If a binary time
    is not provided, the current time is used.

    gettim - get current time as binary

        $bin = gettim([$retmode]);

    Returns the current time. $retmode specifies the format of the returned
    value as described in the overview section.

    numtim - get current time as array or convert binary time to array

        @a = numtim();          # current time
        @a = numtim($bin);      # supplied time value

    Returns an array of numeric values representing the current time. The
    values are returned in the order year, month, day, hour, minute, second,
    hundredth of seconds.

    If no binary time value is provided the current time is used.

    epoch_to_vms - convert unix epoch time value to vms time

        $bin = epoch_to_vms($tm);

    Converts the provided unix time value to OpenVMS binary time format.

    vms_to_epoch - convert vms time to unix epoch time value

        $tm = vms_to_epoch($bin);

    Converts an 8 byte OpenVMS binary time to a unix time value.

SEE ALSO
    See the OpenVMS System Services Reference Manual for descriptions of the
    referenced system services.

AUTHOR
    Thomas Pfau, <tfp...@gmail.com<gt>

COPYRIGHT AND LICENSE
    VMS::Time is Copyright (C) 2013 by Thomas Pfau

    This module is free software. You can redistribute it and/or modify it
    under the terms of the Artistic License 2.0.

    This module is distributed in the hope that it will be useful but it is
    provided "as is"and without any express or implied warranties.

Reply via email to