in reply to Re: Using a range of dates in yymmdd format
in thread Using a range of dates in yymmdd format

I never stated that I was proposing to us this format (yymmdd) over the 8 digits. I am simply trying to use data that has already been formatted by someone else. The format shouldn't be a problem because it is only used to name text files that are less than a year old.

Also, you stated that there are worse ways to do this....……what are some better ways? Why not have a contest to create the best solution?
  • Comment on Re^2: Using a range of dates in yymmdd format

Replies are listed 'Best First'.
Re^3: Using a range of dates in yymmdd format
by mr_mischief (Monsignor) on Aug 14, 2008 at 17:18 UTC
    You want a better way than other people writing more than a dozen modules you can choose from to do your work? What's better than that, other than someone actually writing your code for you?
Re^3: Using a range of dates in yymmdd format
by Cristoforo (Curate) on Aug 15, 2008 at 15:44 UTC
    The dates could be compared alphabetically. For example, '080801' is alphabetically less than '080812'. So, in the code below, the 'ge' and 'le' string comparison operators could be used to filter out the dates contained in the file name.
    #!/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/??????_$na +me") { open my $fh, "<", $file or die "unable to open $file"; while (<$fh>) { # process... } close $fh or die "unable to close $file"; }
    Update: Changed glob "$path/????_$name to glob "$path/??????_$name to correctly let the wildcard operator, '?', match the 6 chars in the date portion of the file name.