in reply to true environment

(trying this against systems currently at my fingers, my linux boxes are at home)

Perhaps it's different on Linux, but on Aix(perl 5.8.0) and Solaris 2.6(perl 5.6.1)

$ENV{FOO}='bar' ; system('echo $FOO') ;
produced:
bar

On Win2k(perl 5.6.1) you have to change $FOO to %FOO% but you get the same result.

This suggests to me that the environment is getting altered and picked up the the child processes of the perl script.