You really should be using a mail module, such as MIME::Lite.
But if you can't (and I don't see why you couldn't), you should replace
system("/usr/sbin/sendmail -oi -t");
with
system("/usr/sbin/sendmail", "-oi", "-t");
The first passes the command to a shell which then parses and interprets it, while the latter calls sendmail directly. That makes it safer, and allows you to check the return code of sendmail (as opposed to the return code of the shell that calls sendmail).
( To answer your question, since the command you're executing is parsed and interpreted by the shell, Perl has no idea if the PATH will be used or not. Even if it did know (and when it does know) the PATH won't be used, it probably gives the same error since there's no harm in erring on the side of caution in this situation. )
In reply to Re: Insecure $ENV{PATH} while running with -T switch
by ikegami
in thread Insecure $ENV{PATH} while running with -T switch
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |