NAME

    Win32::UTCFileTime - Get/set UTC file times with stat/utime on Win32

SYNOPSIS

    # Override built-in stat()/lstat()/utime() within current package only:
    use Win32::UTCFileTime qw(:DEFAULT $ErrStr);
    @stats = stat $file or die "stat() failed: $ErrStr\n";
    $now = time;
    utime $now, $now, $file;

    # Or, override built-in stat()/lstat()/utime() within all packages:
    use Win32::UTCFileTime qw(:globally);
    ...

    # Use an alternative implementation of stat() instead:
    use Win32::UTCFileTime qw(alt_stat $ErrStr);
    @stats = alt_stat($file) or die "alt_stat() failed: $ErrStr\n";

DESCRIPTION

    NOTE: In Perl 5.33.5, the built-in stat() and utime() functions were
    rewritten (and a proper implementation of lstat() was added) in such a way
    that the UTC file time handling is now correct (including the case of
    utime() being used on directories) regardless of which compiler perl is
    built with, thus rendering this module wholly redundant for Perl 5.33.5 or
    later. The remainder of this man page is written from the perspective of
    earlier versions of Perl.

    This module provides replacements for Perl's built-in stat() and utime()
    functions that respectively get and set "correct" UTC file times instead of
    the erroneous values read and written by Microsoft's implementation of
    stat(2) and utime(2), which Perl's built-in functions inherit on Win32 when
    built with the Microsoft C library in Visual Studio 2013 (VC12) or earlier.

    The bugs in the Microsoft C library have since been fixed, so there is
    mostly no need for this module if you build perl with Visual Studio 2015
    (VC14.0) or later, except that the use of utime() on directories is a Perl
    extension over the underlying Microsoft C library function and still has
    incorrect UTC file time handling even for perls built with VC14.0 or later.

INSTALLATION

    See the INSTALL file.

COPYRIGHT

    Copyright (C) 2003-2008, 2012-2015, 2020 Steve Hay. All rights reserved.
    Portions Copyright (C) 2001 Jonathan M Gilligan. Used with permission.
    Portions Copyright (C) 2001 Tony M Hoyle. Used with permission.

LICENCE

    This distribution is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself, i.e. under the terms of either the GNU
    General Public License or the Artistic License, as specified in the LICENCE
    file.
