my $indir = "/tmp/a"; my $outdir = "/tmp/b"; my @suffix = qw(A B C D E F ); ## ON AND ON foreach my $sfilename (@infiles) { $ofilename = "$outdir/$sfilename"; if (-e $ofilename) { ## it exists, lets add a suffix for (@suffix) { if (! -e "$ofilename.$_") { rename "$indir/$sfilename","$ofilename.$_"; print "Renamed to $ofilename.$_"; exit(0); } else { ## suffix alreay taken, try next print "$ofilename.$_ exists ...\n"; } } } else { ## does not exist, rename rename "$indir/$sfilename", "$ofilename"; } }