#!/usr/bin/perl -w use strict; use File::Find; my $dir = '.'; # or wherever find(\&myrename, $dir); sub myrename { my $file1 = $_; my $file2 = $_; if ($file2 =~ s/\.abc$/.edf/) { print "renamed $file1, $file2\n" if rename $file1, $file2; } }