Как определить, подключен ли стандартный вывод к tty в Perl? - PullRequest
14 голосов
/ 19 августа 2010

Я ищу Perl-эквивалент этого кода Python:

from sys import stdout
if stdout.isatty():
    print "yes"
else:
    print "no"

Ответы [ 2 ]

15 голосов
/ 19 августа 2010

Используйте оператор -t filetest .

print -t STDOUT ? "Yes\n" : "No\n"

Обратите внимание, что в Perl STDOUT может быть привязан (по сути, перегружен перегруженным объектом), поэтому вывод в STDOUT все еще может достигать TTYдаже если он не привязан напрямую к одному.

8 голосов
/ 19 августа 2010

Используйте IO :: interactive , если вам требуется, чтобы STDOUT был фактически подключен к терминалу, а не просто перенаправлен на /dev/null/ или что-то еще.

...