in reply to Generating a format template for a date
Indeed I have the impression too that there must be some simple, neat way to do it, but I tried a pair of approaches and the problem turns out to be more elusive than one may think at first sight. All in all the following is a solution (of course it misses error handling for non sensible input, but that's an aside), but I know in advance it has very few chances of being any neater than what you may have thought of yourself
#!/usr/bin/perl -l use strict; use warnings; { my %df = ( '99/99/99' => [qw|DD / MM / RR|], '99/99/9999' => [qw|DD / MM / YYYY|], '9999/99/99' => [qw|YYYY / MM / DD|], ); sub dateformat { my @in=split /(9+)/, shift; shift @in; my @out=@{ $df{join '/', @in[0,2,4]} }; @out[1,3]=@in[1,3]; join '', @out; } } chomp, print dateformat $_ while <DATA>; __END__ 99-99/99 99.99.9999 9999.99-99
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Generating a format template for a date
by Hue-Bond (Priest) on Oct 13, 2006 at 17:17 UTC |