Обратите внимание, что в Perl STDOUT может быть привязан (по существу, к сложному перегруженному объекту), поэтому вывод в STDOUT может по-прежнему достигать TTY, даже если он не привязан к нему напрямую.
Ответ 2
Используйте IO::interactive, если требуется, чтобы STDOUT фактически подключался к терминалу, а не просто перенаправлялся на /dev/null/ или что-то еще.