use strict; use File::Copy; use POSIX; my @files = ('system.csv', 'sales.csv'); # your files my $home = 'd:/EOD/20 January 2002/'; # source my $archive = 'c:/New EOD/'; # destination # the day before my $yesterday = strftime("%Y%m%d", localtime(time - 24*60*60)); # copy all files from $home to $archive; # prepend yesterday's date to all file names. for (@files){ copy $home.$_, "$archive${yesterday}_$_" or print "ERROR: Can't copy $_ : $!\n"; }