Well, my guess would be that Perl script also gets something via other means -- maybe ColdFusion sets up some variables in environment that Perl script depends on, and JSP does not.

The way to solve this is probably taking a peek at the Perl script that is doing a job. Have a look if it is using environment or something else that is not the same under ColdFusion and JSP. Try to see if perl script uses %ENV hash for example.

I am not familiar with neither ColdFusion nor JSP, but this is my guess.