http://www.perlmonks.org?node_id=1033363


in reply to d-mmm-yyyy to DOY (day of year)

The strftime() function from POSIX might be what you need.

$ perl -Mstrict -Mwarnings -MPOSIX=strftime -e ' my $mno = 0; my %monthLookup = map { $_ => $mno ++ } qw{ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec }; open my $inFH, q{<}, \ <<EOD or die $!; 1-Apr-2012,615265,2.4,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00 2-Apr-2012,615265,2.4,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00 3-Apr-2012,615265,2.4,0,0,0,0,0,0,0,0,0,0,11.60,11.60,11.60,11.60,11.6 +0 EOD while ( <$inFH> ) { my $date = ( split m{,} )[ 0 ]; my( $d, $m, $y ) = split m{-}, $date; print strftime( qq{$date is day %j\n}, 0, 0, 0, $d, $monthLookup{ $m }, $y - 1900 ); }' 1-Apr-2012 is day 092 2-Apr-2012 is day 093 3-Apr-2012 is day 094 $

I hope this is helpful.

Cheers,

JohnGG