Необходимо отобразить вывод терминала с помощью команды печати Term :: ANSIColor - PullRequest
1 голос
/ 20 декабря 2010

Вот что у меня есть:

use Term::ANSIColor;
print "Blah!".color("green");

Вывод

Test←[32m

Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

Используемая вами программа терминала не поддерживает коды выхода цвета ECMA-48.Таким образом, он не дает им никакой особой обработки, а вместо этого выводит символы как есть.

Чего вам не хватает: терминала, который делает.xterm, libvte, putty, это лишь некоторые из названий, которые делают.

1 голос
/ 20 декабря 2010

Вы на Windows?Я совершенно уверен, что оболочка Windows не совместима с цветовыми кодами, используемыми модулем.

На самом деле, так и есть, прямо в документации модуля.

Примечаниечто не все дисплеи соответствуют стандарту ISO 6429 или даже X3.64 (или даже пытаются это сделать).Этот модуль не будет работать должным образом на дисплеях, которые не поддерживают эти escape-последовательности, такие как cmd.exe, 4nt.exe и command.com под Windows NT или Windows 2000. Их можно просто игнорировать или они могут отображаться каксимвол ESC, за которым следует какой-то явный мусор.

РЕДАКТИРОВАТЬ: Приложение к моему комментарию:

C:\>perl -MWin32::Console::ANSI -MTerm::ANSIColor -e "print color(\"green\"), 'test', color(\"reset\");"

Отлично работает на Windows XP, Perl 5.12.1, так чтообходной путь.

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