У меня есть файлы с расширением .new
и .old
Итак, у вас есть a.txt.new
и a.txt.old
, но нет a.txt
, и сообщение file does not exist
кажется правильным
Вы, похоже, запутались в своих переменных: у вас есть все имена файлов *.txt.new
в массиве с именем @oldfiles
, в то время как $newfile
не имеет суффикса .new
или .old
. Возможно, вы имели в виду нечто большее?
my $dir = "/Users/henry/Desktop/perltest/templates";
my @oldfiles = glob "$dir/*.old";
print "Checking for new templates\n\n";
for my $oldfile ( @oldfiles ) {
print "Old file \"$oldfile\"\n";
my $newfile = $oldfile;
$newfile =~ s/\.old$/.new/;
print "New file \"$newfile\" ";
if ( -e $newfile ) {
print "exists\n";
}
else {
print "doesn't exist\n";
}
}