in reply to processing dates as directories
G'day moesplace,
Welcome to the monastery.
The basic tools you need for this are the readdir & reverse functions and the .. operator used as a flip-flop. Here's some skeleton code to show the technique:
#!/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;
Output:
$ 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
Here's a listing of the ./pm_proc_dir_dates_rev_dir directory:
$ ls -1a ./pm_proc_dir_dates_rev_dir . .. 20110227 20110228 20110301 20110302 20110303
-- Ken
|
|---|