Вывод цветного терминала в Perl - PullRequest
0 голосов
/ 09 января 2019

Я хотел бы распечатать некоторые выходные данные на терминал в цвете, когда терминал поддерживает цвета, в противном случае распечатайте его обычным способом. Кроме того, я не хотел бы иметь цвет, когда программа не запускается в интерактивном режиме, например когда передано в grep.

Какой лучший способ сделать это в Perl? Я надеюсь, что какой-нибудь API будет примерно таким:

printColorMaybe( RED, "Hi", PLAIN, " mom!\n" );

, где реализация будет игнорировать цветовые коды, когда это не подходит.

1 Ответ

0 голосов
/ 09 января 2019

Term::ANSIColor на произведенную цветную продукцию.

-t STDOUT, чтобы проверить, открыт ли стандартный вывод для терминала.

$ENV{ANSI_COLORS_DISABLED} для динамического отключения Term::ANSIColor.

use Term::ANSIColor;
$ENV{ANSI_COLORS_DISABLED}++ unless -t STDOUT;
print colored("Hi","red")," mom!\n";
...