I know very little about PERL but I am familiar with the UNIX environment.

Once you telneted to the UNIX site your registry and SQLLDR.EXE file on Windows become irrelevant. The issue now is the environment within (or maybe around) your PERL call.

When setting up the environment on the UNIX side I normally set an ORACLE_HOME, I set my PATH to include the ${ORACLE_HOME}/bin directory, I set my LD_LIBRARY_PATH to include the Oracle libraries and I set my ORACLE_SID so that it goes to the database I want.

I don't see anything corresponding to these steps in your posting.

Are you setting them before you invoke PERL? Are they being set automatically in PERL? Are they simply being left out?

What are you getting from PERL in this case that you wouldn't get from just setting your UNIX environment and issuing the call?