You could also add some debugging to the process. If cron kicks of a one line command that starts the ksh and perl, you could instead call a shell script that
does some logging prior to calling the perl script (date, time, pid, some text to indicate that the script is running), then do the same in the perl script and in the ksh script after the perl script terminates. You can scan through the log file and see if there are any indications of where the failure occured. If nothing is logged for a particular day, it could indicate that the shell script failed to initialize. If you were running out of file handles or the process table was full, I would have expected to see some indication in syslog.log unless you have the logging level turned down. If you have MeasureWare, you can check some of the kernel table values and see how busy the system was at the time the problem occured.
Any sufficiently advanced technology is indistinguishable from Magic - Arthur C. Clarke