As to your main question, sadly, I don't know.
But my reading of the Kill function leads me to different conclusions. Kill seems to return the number of processes successfully signaled (processes sent in a list after the signal. The signal zero sends no signals, and there is no list, so that should always return zero.
Now, if that eval block gets to the "1;", it is because the join went off without a hitch because the stuff in @_ wasn't tainted. So the eval returns 1, the not turns it into false: the variables were not tainted.
If they are tainted, I'm not totally sure what is happening (most of this is guesswork, I'm not that good/experienced with Perl). I'm guessing that the join wets the bed and fails, the "kill" returns 0 (no processes were signaled), the eval grinds to a halt and returns the 0. The not turns that into a true, the variables were in fact tainted.
Again, not that experienced, may be way off base here.
Edit: Dave swooped in with the correct answer. I'm going to go back to reading "Programming Perl."
In reply to Re: is_tainted function
by amarquis
in thread is_tainted function
by perlknight
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |