La que buscas es day_of_year() de Date::Manip.
De todas maneras, el número del día del año también lo tienes en la llamada a la función localtime() o gmtime(), en el argumento número 7:
Using text Syntax Highlighting
# 0 1 2 3 4 5 6 7 8
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Si time es un tiempo expresado en segundos (desde el EPOCH), entonces podemos saber el día del año en que estamos, en el rango 0..365.
Si no tienes el tiempo expresado en segundos, puedes usar el módulo Time::Local (incluido en la distribución Perl), para conseguirlo a partir de los datos de la fecha:
Using perl Syntax Highlighting
my $time = timelocal($segundos, $minutos, $horas, $dia, $mes, $año);
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Y ahora ya puedes obtener el día del año:
Using perl Syntax Highlighting
my $doy = (localtime $time)[7];
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Ejemplo:
Using bash Syntax Highlighting
$ perl -MTime::Local -E '$time = timelocal(0, 25, 21, 19, 8, 2012); $doy = (localtime $time)[7]; say $doy'
262
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
El 19 de septiembre de este año es el día 263º del año. Comprobación:
Using bash Syntax Highlighting
$ date +"%j"
263
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
¡Ojo! El número de mes ha de ser uno menos (0 para enero, 1 para febrero, etc.)