... for ( @found ) { my ($base,$dir) = (basename($_),dirname($_)); next unless $base =~ /$pat/; defined $opts{n} ? $base =~ s/$pat/$rep/ : $base =~ s/$pat/$rep/g; my $newname = File::Spec->catfile($dir,$base); if (-e $newname) { warn("can't rename $_ to $newname: $newname already exists\n"); } else { rename($_,$newname) or warn "can't rename $_ to $newname:$!\n"; } }