in reply to UNIX/profile the sequel

As I mentioned in my reply to your ealier post, I wasn't sure about the relative ordering of "use" and "BEGIN", until I tried a little experiment. Base on the results, it looks to me like perl deals with "use" directives before it does the BEGIN block. So you need to make sure that the shell that invokes your perl script already has the environment set up for finding the module(s) you need to "use".

I suppose there might be a work-around by loading your module with "require" instead of "use", since "require" is handled at run-time. Assuming that "require" searches @INC at run-time just like "use" does at compile-time, this should get you where you want to be without changing your cron job spec.

Still, I'd be more inclined to change the cron job spec, so that the cron job shell gets the intended .profile environment before it runs the perl script.