Как определить, связано ли stdout с tty в Perl?
Я ищу эквивалент Perl для этого кода на Python:
from sys import stdout
if stdout.isatty():
print "yes"
else:
print "no"
Ответы
Ответ 1
Используйте оператор - t filetest.
print -t STDOUT ? "Yes\n" : "No\n"
Обратите внимание, что в Perl STDOUT может быть привязан (по существу, к сложному перегруженному объекту), поэтому вывод в STDOUT может по-прежнему достигать TTY, даже если он не привязан к нему напрямую.
Ответ 2
Используйте IO::interactive, если требуется, чтобы STDOUT фактически подключался к терминалу, а не просто перенаправлялся на /dev/null/
или что-то еще.