opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!"; my @files = grep { /^\./ && -f "$some_dir/$_" } readdir(DIR); closedir(DIR); @files = sort {$a <=> $b} @files; # Ascending sort my $count = 1; foreach (@files) { rename($_, "testfile$count") or warn "rename: $_ : $!"; $count = $count + 1; }