my %ext_map = ( '.tst' => '.test' ); open(FHA, ">renamebatch"); foreach my $file (@orderlist) { (old_filename, undef, $ext) = fileparse($file,qr{\..*}); my $new_ext = $ext_map{$ext} || $ext; my $new_filename = $old_filename; print(FHA "$new_filename$new_ext"); }