Спецификаторы цвета Perl с перенаправленным выводом - PullRequest
5 голосов
/ 09 февраля 2012

У меня есть Perl-скрипт, который использует Term::ANSIColor. Раньше случалось так, что если я перенаправляю вывод в файл > file.txt, то файл содержит только текст, а не цветовые коды ^[[0m

Что-то изменилось на моей машине, Ubuntu 10.04, так что перенаправленный вывод содержит эти специальные символы, которые определяют цвет.

Есть идеи, как это исправить? Могу ли я определить перенаправление вывода из скрипта perl и пропустить часть цвета?

Спасибо!

1 Ответ

6 голосов
/ 09 февраля 2012

Вы можете проверить, работаете ли вы в интерактивном режиме, используя пакет IO :: Interactive :

use IO::Interactive qw(is_interactive);

if (is_interactive())
{
    # show some fancy color
}

Обоснование использования IO :: Interactive (вместо простого тестирования, если STDIN это tty с оператором -t) широко объяснено Дамианом Конвеем .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...