http://qs321.pair.com?node_id=1232358

Special_K has asked for the wisdom of the Perl Monks concerning the following question:

If I run the "umask" command in a Linux terminal, the result is 2. I am running tcsh and have a perl script that runs the following commands:
printf("umask is %s\n", umask()); system "/usr/bin/xterm -name \"test\" -hold -e '$command' & ";

where $command is:

echo \"umask is \" ; umask; ";

The first printf() statement returns 2, but the echo called from the xterm returns 22. Why are these different, and what should I do to make the 22 a 2?