Windowsでコピーするとタイムスタンプが維持されるが、OSやシェルによってはタイムスタンプが更新されるものがるので注意

Perlの場合

Perlにはコピー用の標準関数が無いのでFile::Copyモジュールを使用します。 このモジュールでcopyするとタイムスタンプが更新されてしまいますので、 予め変数に格納しておいて元に戻します。 (※固定するパラメータは無いのかな?)

use File::Copy;
my( $atime, $mtime ) = ( stat( $fromFile ) )[8, 9];
copy( $fromFile, $toFile );
utime( $atime, $mtime, $toFile );