$datum liegt in folgenden möglichen Formaten vor:
12.03.2010
03.2010
2010Folgende Regexe liefern mir die einzelnen Elemente:
Warum ein regulärer Ausdruck?
my $datum = '5.3.2010';
my($jahr, $monat, $tag) = reverse split /\./, $datum);
printf '%02s.%02s.%04s', $tag, $monat, $jahr;
Damit Warnungen vermieden werden, kannst du hier auch eine Defaultwert angeben:
my($jahr, $monat, $tag) = reverse (1970, 1, 1, (split /\./, $datum));
Struppi.