Efectivamente, el programa falla porque cron no sabe dónde está el programa fecha.pl.
Un demonio cron se suele ejcutar en un determinado subdirectorio del sistema. Y su variable PATH puede ser tan corta como "/usr/bin:/bin" (sacado de la página de manual).
Por eso, lo que se suele hacer es:
[list=10h][*0h]Definir una nueva variable PATH dentro del fichero crontab para que cron (y los procesos que dependen de él) sepa dónde están los comandos a ejecutar, o[/*:m0h]
[*0h]Indicar, de forma absoluta, dónde están los comandos a ejecutar. Y de esta forma, hay dos variantes:
[list=10h][*0h]Al principio del programa hacemos un cd al directorio donde queremos que se trabaje. Si allí están los scripts, luego podemos referirnos a ellos de forma relativa:
Using bash Syntax Highlighting
AYER=
`perl .
/fecha.pl
`Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
[/*:m0h]
[*0h]Indicar de forma absoluta toda referencia a ficheros o programas:
Using bash Syntax Highlighting
AYER=
`perl /home
/kiloko
/programas
/unix
/cron
/fecha.pl
`Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
[/*:m0h][/list:o0h][/*:m0h][/list:o0h]