http://qs321.pair.com?node_id=619139

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:
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];