# File::Touch - phpMan

## 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.

