- utime LIST
Changes the access and modification times on each file of a list of files. The first two elements of the list must be the NUMERICAL access and modification times, in that order. Returns the number of files successfully changed. The inode change time of each file is set to the current time. For example, this code has the same effect as the Unix touch(1) command when the files already exist and belong to the user running the program:
#!/usr/bin/perl $atime = $mtime = time; utime $atime, $mtime, @ARGV;
Since perl 5.7.2, if the first two elements of the list are undef
, then
the utime(2) function in the C library will be called with a null second
argument. On most systems, this will set the file's access and
modification times to the current time (i.e. equivalent to the example
above) and will even work on other users' files where you have write
permission:
utime undef, undef, @ARGV;
Under NFS this will use the time of the NFS server, not the time of the local machine. If there is a time synchronization problem, the NFS server and local machine will have different times. The Unix touch(1) command will in fact normally use this form instead of the one shown in the first example.
Note that only passing one of the first two elements as undef
will
be equivalent of passing it as 0 and will not have the same effect as
described when they are both undef
. This case will also trigger an
uninitialized warning.