foreach my $filename (reverse((grep /^sniffer/, <*>))) { my $new_name = $filename; if($new_name =~ m/(\d+)/) { my $value = $1 +1; $new_name = "sniffer$value.log"; } else { $new_name = "sniffer1.log"; } rename($filename, $new_name) unless $filename eq $new_name; }