add $*TMPDIR to S16; update S28 to distinguish IO::Handle/IO::Path