monktim has asked for the wisdom of the Perl Monks concerning the following question:
I have a multi-gigabyte file.
Is there an easy way to change the modification timestamp of a file without opening it, modifing it, and closing it again? I'd like to do it using standard Perl. I'm using v5.8. I'd like to do it without creating a second or temporary file too.
I just want to change the modifiation time, not the contents. It would be great if there was a simple function call to do it.
Thanks in advance.
Update
Thanks for all the great answers. I should have said I was using ActiveState Perl on Windows. I just wrote a little touch.pl script and stuck it in my utilities folder. It amounts to this:
Update
Thanks for all the great answers. I should have said I was using ActiveState Perl on Windows. I just wrote a little touch.pl script and stuck it in my utilities folder. It amounts to this:
use strict; use warnings; die "bad file name: $ARGV[0]" if !-e $ARGV[0]; my $atime = (stat($ARGV[0]))[8]; utime $atime, time(), $ARGV[0];
|
---|
Back to
Seekers of Perl Wisdom