in reply to Help with a more precise regex

Not a direct answer to your question, but as a suggestion I wanted to point you in the direction of the Date::Manip module. Often in my scripts which dealt with time/date parsing, this module saved my day. It is able to do a lot of date 'magic' but may require some digging in order to understand :)

Here's a rendition of Ovid's code, but using the Date::Manip module. I agree that using the module for such a simple task may look like an overkill, but I have this feeling your program may have to deal with a lot more date/time manipulation going forward. Even if this is not the case, it's always good to have another way of doing a thing ;-)
use strict; use Date::Manip; foreach (<DATA>) { chomp; next if /^$/; my @delta=split(/:/, ParseDateDelta($_)); my ($day) = $delta[3]; my ($hour) = $delta[4]; print "$_\t=>\tDay: $day\tHour: $hour\n"; } __DATA__ 3d 3d 2h 6h
And the output the script generates is:
3d => Day: 3 Hour: 0 3d 2h => Day: 3 Hour: 2 6h => Day: 0 Hour: 6

# Under Construction

Replies are listed 'Best First'.
Re:^2 Help with a more precise regex
by LogicalChaos (Beadle) on Apr 25, 2003 at 20:57 UTC
    Actually, I won't be using date manipulations much. This is in a ClearQuest project I'm implementing, and all I need to know is that there are 8 hours in a day. The info gathered will be presented in days/hours.

    And, unless I mis-remember, Date::Manip has compiled code, which would make it very difficult for me to place in cqperl (which is derived from ActiveState 5.6.0 perl). I can put in Perl only modules, but wouldn't want to hazzard puting in DLL's (or whatever is used on Windows).

    Thanks for your input,
      Although the solution I was proposing may not be precisely the one you were looking for; I thought it was worth noting for sake of others who might stumble on your post and wonder about alternative ways of doing this. It also appears simpler than the regexp way :)

      There should be absolutely no difficulty in getting Date::Manip to work with cqperl as the module "is written entirely in perl" (quote). Despite of the fact that it may increase the size of your final executable and/or also affect it's run-time speed, there is no other visible harm in using the module. As I had stated, it would be an overkill to use the module to simply decypher date and hour values from the sample input you provided. Nontheless, it does appear cleaner than using raw regexp ;)

      # Under Construction
        I guess you are saying I mis-remembered... Is that what your're saying?

        I was thinking of Date::Calc. And I do thank you for your information. All information is good information, especially when I didn't know it previously.