my $date = '07/04/2001';
$date = join '/', map { $_+0 } split /\//, $date;
print $date;
That statement should be read right to left. It splits the $date on the forward slash and passes each segment to the map. map adds zero to each, which forces the string to be numeric, which is what drops that leading zero. The final join restores it to the original format.
You also might find the following a little easier to understand:
$date =~ s!^0+!!; # trim leading zeroes
$date =~ s!/0+!/!g; # trim zeroes after a /
Update: Just saw Kanji's better answer on another node (the parent was cross-posted by original author):
$date =~ s/\b0//g;
Cheers,
Ovid
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats. |