Richard Lee wrote:
John W. Krahn wrote:
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]*";

hey thanks!

this works fine now

} elsif ( $ARGV[0] =~ m/\b2008(0[1-9]|1[12])(0[1-9]|1[0-9]|2[0-9]|3[01])([01][0-9]|2[0-3])\b/ ) {
                  ^^^^^
So you don't want to test for October?



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

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to