in reply to day of year calculation

What's wrong with using localtime and Time::Local ?

use strict; use Time::Local; sub dayofyear { my ($d,$m,$y) = @_; $m--; (localtime(timelocal(0,0,0,$d,$m,$y)))[7] };

Beware of the behaviour of timelocal for years < 1000.