The only difference in environment variables that even has a long shot as far as I can tell is the shell. When run from command line it is using 'bash' and when running from 'cron' it is using 'sh'. Does perl even care? I thought perl runs in its own shell. Anyway, sourcing `. /etc/profile` in the script does not help.