#!/usr/bin/perl use strict; use warnings; my $path = "/some/path"; my $name = "name"; my $start = "$path/080801_$name"; my $end = "$path/080930_$name"; for my $file (grep {$_ ge $start && $_ le $end} glob "$path/??????_$name") { open my $fh, "<", $file or die "unable to open $file"; while (<$fh>) { # process... } close $fh or die "unable to close $file"; }