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.