use a hash to filter doubles
#! perl -w
use strict;
my($file);
my(%upload,%seen);
%upload=(a=> 'dog',
b=> 'cat',
c=> 'llama',
d => 'dog'
);
for (keys %upload){
$file=$upload{$_};
if(defined $seen{$file}) {
print "<center><font color=red>Duplicate filename found: $
+file</font></center>\n";
exit;
}
$seen{$file}=$file;
print "<font color=blue><center>Uploaded $file</font></center>";
+
}
Instead of the exit call you could just make the filename more unique by tagging on a number (much like your OS does when you make try to make a file with a non unique name)
#! perl -w
use strict;
my(%upload,%seen);
my($counter,$file,$old);
%upload=(a=> 'dog.gif',
b=> 'cat.gif',
c=> 'llama.gif',
d => 'dog.gif'
);
for (keys %upload){
$file=$upload{$_};
if(defined $seen{$file}) {
$old=$file;
while (defined $seen{$file}){
$file=$old;
$counter++;
$file=join('.',$file,$counter);
}
}
$seen{$file}=$file;
print "<font color=blue><center>Uploaded ",$file,"</font></cente
+r>\n";
}