Используйте оператор -t filetest .
print -t STDOUT ? "Yes\n" : "No\n"
Обратите внимание, что в Perl STDOUT может быть привязан (по сути, перегружен перегруженным объектом), поэтому вывод в STDOUT все еще может достигать TTYдаже если он не привязан напрямую к одному.