From which I gather the filetests don't take a default "$_".
Well if you read "perldoc -f -X" you'll see it says:
-X FILEHANDLE
-X EXPR
-X DIRHANDLE
-X A file test, where X is one of the letters listed below. This unary
operator takes one argument, either a filename, a filehandle, or a
dirhandle, and tests the associated file to see if something is true
about it. If the argument is omitted, tests $_, except for "-t", which
tests STDIN. Unless otherwise documented, it returns 1 for true
and '' for false, or the undefined value if the file doesn't exist. Despite
the funny names, precedence is the same as any other named unary operator.