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 atimeandmtimearguments, 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.