dwww Home | Manual pages | Find package

File::Touch(3pm)      User Contributed Perl Documentation     File::Touch(3pm)

NAME
       File::Touch - update file access and modification times, optionally
       creating files if needed

SYNOPSIS
        use File::Touch 0.12;
        @file_list = ('one.txt','../two.doc');
        $count = touch(@file_list);

        use File::Touch;
        $reference_file = '/etc/passwd';
        $touch_obj = File::Touch->new(
                         reference => $reference_file,
                         no_create => 1
                     );
        @file_list = ('one.txt','../two.doc');
        $count     = $touch_obj->touch(@file_list);

DESCRIPTION
       This module provides both a functional and OO interface for changing
       the file access and modification times on files.  It can optionally
       create the file for you, if it doesn't exist.

       Note: you should specify a minimum version of 0.12, as per the
       SYNOPSIS, as that fixed an issue that affected systems that have sub-
       second granularity on those file times.

       Here's a list of arguments that can be used with the object-oriented
       contruction:

       atime_only => [0|1]
           If nonzero, change only the access time of files. Default is zero.

       mtime_only => [0|1]
           If nonzero, change only the modification time of files. Default is
           zero.

       no_create => [0|1]
           If nonzero, do not create new files. Default is zero.

       reference => $reference_file
           If defined, use timestamps from this file instead of current time.
           The timestamps are read from the reference file when the object is
           created, not when "<-"touch>> is invoked.  Default is undefined.

       time => $time
           If defined, then this value will be used for both access time and
           modification time, whichever of those are set.  This time is
           overridden by the "atime" and "mtime" arguments, if you use them.

       atime => $time
           If defined, use this time (in epoch seconds) instead of current
           time for access time.

       mtime => $time
           If defined, use this time (in epoch seconds) instead of current
           time for modification time.

Examples
   Update access and modification times, creating nonexistent files
        use File::Touch;
        my @files = ('one','two','three');
        my $count = touch(@files);
        print "$count files updated\n";

   Set access time forward, leave modification time unchanged
        use File::Touch;
        my @files = ('one','two','three');
        my $day = 24*60*60;
        my $time = time() + 30 * $day;
        my $ref = File::Touch->new( atime_only => 1, time => $time );
        my $count = $ref->touch(@files);
        print "$count files updated\n";

   Set modification time back, update access time, do not create nonexistent
       files
        use File::Touch;
        my @files = ('one','two','three');
        my $day = 24*60*60;
        my $time = time() - 30 * $day;
        my $ref = File::Touch->new( mtime => $time, no_create => 1 );
        my $count = $ref->touch(@files);
        print "$count files updated\n";

   Make a change to a file, keeping its timestamps unchanged
        use File::Touch;
        my $date_restorer = File::Touch->new(reference => $file);
        # Update the contents of $file here.
        $date_restorer->touch($file);

REPOSITORY
       <https://github.com/neilb/File-Touch>

AUTHOR
       Nigel Wetters Gourlay (nwetters@cpan.org)

COPYRIGHT
       Copyright (c) 2001,2007,2009 Nigel Wetters Gourlay. All Rights
       Reserved.  This module is free software. It may be used, redistributed
       and/or modified under the same terms as Perl itself.

perl v5.34.0                      2022-10-13                  File::Touch(3pm)

Generated by dwww version 1.15 on Sun Jun 23 05:21:33 CEST 2024.