suggests that this behaviour is an intended feature. It also suggests a way that you can verify dates:my $t = Time::Piece->strptime("Sun 3rd Nov, 1943", "%A %drd %b, %Y"); print $t->strftime("%a, %d %b %Y"); Outputs: Wed, 03 Nov 1943 (see, it's even smart enough to fix my obvious date bug)
which leads to:use strict; use warnings; use Time::Piece; my $format = "%d-%m-%Y"; while (my $date = <DATA>) { chomp $date; printf("%s %s legitimate\n", $date, (verify_date($date, $format) ? "is" : "is not"), ); } sub verify_date { my ($date_in, $format) = @_; my $t = Time::Piece->strptime($date_in, $format); my $date_out = $t->strftime($format); return $date_in eq $date_out ? 1 : 0; } __DATA__ 28-02-2004 29-02-2004 30-02-2004 28-02-2006 29-02-2006 30-02-2006
28-02-2004 is legitimate 29-02-2004 is legitimate 30-02-2004 is not legitimate 28-02-2006 is legitimate 29-02-2006 is not legitimate 30-02-2006 is not legitimate
In reply to Re: Time::Piece strangeness
by randyk
in thread Time::Piece strangeness
by InfiniteLoop
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |