Dan,
Here's my solution. I'm not capturing the days, hours, minutes, seconds
as I go, but I'm sure you can see how to if it's really necessary.
#!/usr/bin/perl -w
use strict;
my @list=('3d4h45m12s', '3h', '5h2m');
foreach (@list) {
my $seconds=0;
my $string=$_;
while ($string=~s/(\d+)([dhms])//) {
$seconds+=24*60*60*$1 if ($2 eq 'd');
$seconds+=60*60*$1 if ($2 eq 'h');
$seconds+=60*$1 if ($2 eq 'm');
$seconds+=$1 if ($2 eq 's');
}
print "$_ has $seconds seconds.\n";
}
On Fri, 31 Jan 2003, dan wrote:
> I have a string, which is to represent a length of time, say 3d4h45m12s
> which can be variable, so you may end up with just 3m, or 5h2m, etc. What I
> need to do, is to take this string, and split it up into $days, $hours,
> $minutes etc, and then create that amount of time in seconds, which will
> then be added to the current timestamp to create an expiry time.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]