No lo he probado, pero la idea es esta:
Código PHP:
my %files = map { $_ => 1 } @files;
while (my $ref = $sth->fetchrow_hashref()) {
delete $files{$ref->{image1}};
delete $files{$ref->{image2}};
delete $files{$ref->{image3}};
delete $files{$ref->{image4}};
delete $files{$ref->{image5}};
}
for my $file (keys %files) {
print "Aquí, borrar fichero $file\n";
# unlink "$upload/$file";
}
Es decir: pasamos el array de ficheros que tenemos a un hash. Luego, recorremos la base de datos, eliminando los elementos del hash que coinciden con los que aparecen en la base de datos. Los elementos que queden son los ficheros que tenemos que borrar.