in reply to How to do a recursive rename ?

Just a slightly different way of writing it:
use File::Find; finddepth sub { my $old = $_; return unless -f and s/\.abc$/.def/; warn("won't overwrite existing file at $File::Find::name"), return if -e; rename $old, $_ or warn "Cannot rename $old to $_ in $File::Find::di +r: $!"; }, ".";
This works even if you rename a directory, because the directory gets renamed last.

-- Randal L. Schwartz, Perl hacker