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

A good starting point could be to use the module Date::Calc. A bit heavy, maybe, but it includes everything and the kitchen sink, including parsing dates, and the function Day_of_Year.
$doy = Day_of_Year($year,$month,$day);

If parsing dates doesn't work out so well without an explicit format, you can fall back on POSIX::strptime.