sub parseWebdate { my ($str) = @_; if($str =~ /^([+-])(\d+)(\w)/) { my %multipliers = ( s => 1, m => 60, h => 60*60, d => 60*60*24, W => 60*60*24*7, M => 60*60*24*30, y => 60*60*24*365, ); my ($direction, $amount, $multiplier) = ($1, $2, $3); if(!defined($multipliers{$multiplier})) { croak("Undefined delta time multiplier $multiplier"); } if($direction eq '-') { $amount = $amount * -1; } return time() + ($amount * $multipliers{$multiplier}); } # normal time string return str2time($str); }