... my $dir_path = "/my_dir"; my @dir = <$dir_path/*.*>; if (@dir) { foreach (@dir) { next if -d; my $temp_f_name = basename( $_ ); # get just the file extension (my $file_extention = $temp_f_name)=~s/^([^_]+_)(.*)(\.\w{3,4})\z$/$3/eg; my $renamed_file ="oldsince_"."$file_extention"; rename($temp_f_name, $renamed_file ) unless $temp_f_name eq $renamed_file or warn "Couldn't rename: $!\n"; } } ...