Since the cross-post and my response seem to have dissappeared, I think it's worth restating that s/\b0//g will also truncate the year if you use the short form (01) instead of the long (2001).
A more flexible approach (that leaves the year intact even if it does start with an 0) might be something like ...
sub unpad_datestring { ## Strip the leading 0s from the day and month portions of ## a YMD-style datestring. ## The only mandatory argument is the date string itself, ## which assumes the string is delimeted by a slash and ## ordered American-style ( MDY ). If that assumption is ## wrong, you can override either or both via the 'delim' ## and 'order' arguments ... ## '07/04/2001' ## '04/07/01', 'order' => [qw( d m y )] ## '01.07.04', 'order' => [qw( y m d )], 'delim' => '.' my $date = shift or return; my %args = ( 'order' => [qw(d m y)], 'delim' => '/', @_, ); my @date = split /\Q$args{'delim'}/, $date; for ( my $x = 0; $x < @date; $x++ ) { $date[$x] = int $date[$x] if lc $args{'order'}->[$x] =~ /^[dm]$/; } return join $args{'delim'}, @date; }
--k.
In reply to Re: Re: How do I drop leading zeros from a date like 07/04/2001 to read 7/4/2001??
by Kanji
in thread How do I drop leading zeros from a date like 07/04/2001 to read 7/4/2001??
by gtmeyer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |