I'm posting this so maybe someone else will learn from my pain. I just spent an hour trying to figure out why Directory::Scratch and File::Temp were creating temp directorys in $ENV{TMP} on one test script under Win32, and in the cwd() on another script.
Of course, the answer is that one test has -T, and one does not. With tainting on of course, there is no ENV (TMP/TEMP), so the cwd() is used. It makes sense, but in a way feels like a bug.
At the very least, maybe that should be a big fat warning on the File::Temp pod.
Re:DWIM or RTFM?
jk2addict on 2008-01-01T05:22:51
Well, RTFM is a funny thing...the farther away from the module you're using, the less he lack RTFMing is the users fault. As a user of Directory::Scratch, should I have to RTFM three to four levels deep to find one mention of tempdir producing two different results when in and out of taint mode?
As far as running tests under taint mode, I do it for one reason only: to sooner find our what doesn't work under taint mode. There is nothing more frustrating than trying to turn on Taint in Apache/ModPerl instance, just to find out that your module, or ever worse, that some core module not only acts differently under taint mode, but usually just plain dies.
Far more things that run under -T will run without -T, but I dare say the reverse isn't as true.