#!/usr/bin/env perl -l use strict; use warnings; my $base_dir = './pm_proc_dir_dates_rev_dir'; my $start_date = '20110228'; my $end_date = '20110302'; opendir my $dh, $base_dir or die "Can't open '$base_dir': $!"; for (reverse grep { /^[^.]/ } readdir $dh) { if (/$end_date$/ .. /$start_date$/) { print "+ Processing: $base_dir/$_"; } else { print "- Skipping: $base_dir/$_"; } } closedir $dh; #### $ pm_proc_dir_dates_rev.pl - Skipping: ./pm_proc_dir_dates_rev_dir/20110303 + Processing: ./pm_proc_dir_dates_rev_dir/20110302 + Processing: ./pm_proc_dir_dates_rev_dir/20110301 + Processing: ./pm_proc_dir_dates_rev_dir/20110228 - Skipping: ./pm_proc_dir_dates_rev_dir/20110227 #### $ ls -1a ./pm_proc_dir_dates_rev_dir . .. 20110227 20110228 20110301 20110302 20110303