# needs several foo_.bar { my $re = qr/foo_(\d+)\.bar$/; sub seq_num { $_ = shift; m/$re/; return $1; } } my @files = ; my @sorted_files = sort { seq_num($b) <=> seq_num($a) } @files; my $next = 1 + seq_num($sorted_files[0]); open NEXT, "> /dir/to/use/foo_$next.bar"; # print content to NEXT close(NEXT);