Re: regex question matching dates

[email protected] ("John W. Krahn")
Newsgroups perl.beginners
Message-ID <[email protected]>
Richard Lee wrote:
> given then ARGV[0] is 2008052803, why woulnd't below regex match them??

2008052803 is a ten digit number.


> } elsif ( $ARGV[0] =~ m/\b2008[01][1-31]([01][0-9]|2[0-3])\b/ ) {

Your pattern matches eight digits with a \b word boundary at each end so 
it will never match a ten digit number.  Also the character class [1-31] 
could be more simply written as [1-3] (repeated characters are ignored.)


>      @array = qx#ls -tr $directory/$ARGV[0]*#;

Why not do that directly in perl:

      @array = map $_->[0], sort { $a->[1] <=> $b->[1] } map [ $_, -M ], 
glob "$directory/$ARGV[0]*";


>      #2008052803


John
-- 
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.