in reply to Using a range of dates in yymmdd format

The main reason you're seeing mostly eight-digit dates is because the world just spent billions of dollars a few years ago dealing with the problems inherent in the format you are proposing. That caveat out of the way, there are a number of ways to deal with your issue.

If you search the PM site, you'll probably find some great comparisons and advice about date and time modules as well. One should do what you need.

Update: s/data/date/ in the second list item.

  • Comment on Re: Using a range of dates in yymmdd format

Replies are listed 'Best First'.
Re^2: Using a range of dates in yymmdd format
by ITmajor (Beadle) on Aug 14, 2008 at 15:23 UTC
    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?
      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?
      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.