Instead of using cron to operate perl scripts, try this module. It can take a crontab schedule from a crontab file or programmatically, and operate as if it were cron - but with the benefit of being perl. It can eval arguments, catch errors, has a logging callback, and of course much more.
In several years of using it, it has never let me down.
One caveat: you'll need POSIX::setsid implemented on your architecture -- which means you can't use this module on Win32.