in reply to compare dates?

Date::Manip should do what you want:

#!/usr/bin/perl use strict; use warnings; use Date::Manip; my @dates; while( <DATA> ) { chomp; push( @dates, ParseDate( $_ ) ); } @dates = sort @dates; my $oldest = $dates[0]; foreach my $current ( @dates ) { my $diff = DateCalc( $oldest, $current ); print "Diff between ", UnixDate( $oldest, "%m/%d/%y" ), " and ", UnixDate( $current, "%m/%d/%y" ), " is ", Delta_Format( $diff, "approx", 0, "%Mt" ), "\n"; } __DATA__ 06/30/96 08/07/97 09/05/97 12/11/97 03/26/98 07/17/98 10/23/98 11/12/98 01/14/99 04/10/99 05/27/99 02/10/00 03/10/00 03/15/00 03/15/00 03/30/00 06/15/00 07/13/00 08/03/00 09/07/00 09/30/00 12/10/00 01/25/01 02/27/01

-derby

Update: If the list is all ready sorted (and you need a bit of golf)

#!/usr/bin/perl use strict; use warnings; use Date::Manip; use List::Util qw( reduce ); my @dates = qw( 06/30/96 08/07/97 09/05/97 12/11/97 03/26/98 07/17/98 10/23/98 11/12/98 01/14/99 04/10/99 05/27/99 02/10/00 03/10/00 03/15/00 03/15/00 03/30/00 06/15/00 07/13/00 08/03/00 09/07/00 09/30/00 12/10/00 01/25/01 02/27/01 ); reduce { print "Diff between $a and $b is ", Delta_Format( DateCalc( $a, $b ) +, "approx", 0, "%Mt" ), "\n"; $a; } @dates;

Replies are listed 'Best First'.
Re^2: compare dates?
by andreas1234567 (Vicar) on Apr 10, 2008 at 06:17 UTC
    I was about to rant hey that does not even work, it spits out a ton of warnings, how dare you post such untested code, etc etc.. Then I saw I had an old version of Date::Manip. After upgrading from 5.42 to 5.48 it works flawlessly.
    # Date::Manip 5.42 ]$ /usr/bin/perl -w 679308.pl Argument "approx" isn't numeric in numeric gt (>) at /usr/lib/perl5/ve +ndor_perl/5.8.5/Date/Manip.pm line 1908, <DATA> line 24. Diff between 06/30/96 and 06/30/96 is 0.000000 Argument "approx" isn't numeric in numeric gt (>) at /usr/lib/perl5/ve +ndor_perl/5.8.5/Date/Manip.pm line 1908, <DATA> line 24. Diff between 06/30/96 and 08/07/97 is 0.000000 Argument "approx" isn't numeric in numeric gt (>) at /usr/lib/perl5/ve +ndor_perl/5.8.5/Date/Manip.pm line 1908, <DATA> line 24. Diff between 06/30/96 and 09/05/97 is 0.000000
    # Date::Manip 5.48 $ /usr/bin/perl 679308.pl Diff between 06/30/96 and 06/30/96 is 0.000000 Diff between 06/30/96 and 08/07/97 is 13.240246 Diff between 06/30/96 and 09/05/97 is 14.193018
    Owners of older versions of Date::Manip are hereby warned.
    --
    Andreas