Perl programmers should first read the man page perlsec(1),
which describes a number of issues involved with writing secure
programs in Perl. In particular, perlsec(1) describes the
``taint'' mode, which most secure Perl programs should use.
Taint mode is automatically enabled if the real and effective
user or group IDs differ, or you can use the -T command line
flag (use the latter if you're running on behalf of someone
else, e.g., a CGI script). Taint mode turns on various checks,
such as checking path directories to make sure they aren't
writable by others. The most obvious affect of taint mode,
however, is that you may not use data derived from outside your
program to affect something else outside your program by
accident. In taint mode, all externally-obtained input is marked
as ``tainted'', including command line arguments, environment
variables, locale information (see perllocale(1)), results of
certain system calls (readdir, readlink, the gecos field of
getpw* calls), and all file input. Tainted data