Ncurses用Perl转义
问题描述:
编写Perl代码。我知道我可以使用期限:: ANSIColor做Ncurses用Perl转义
print color('red') . 'hello world';
然而,在这种情况下我使用的是诅咒库,我想创建一个标签,其中有些话是红色,一些黄色,所有我可以操纵的是一个字符串,我将传递给图书馆进行渲染。如果我这样做
$string = color('red') . 'hello world' . color('yellow') . ' another word';
然后当我传递$ string到打印库时,它打印逐字ANSI转义序列。有没有办法做我想做的事,或者我必须手动管理attron()和朋友的标签图纸?
在此先感谢。
答
我在Windows上,它本身不支持ANSI颜色编码。您必须使用Win32 :: Console :: ANSI。没有它,下面的代码会执行你的系统正在做的事情。有了它,颜色就产生了。所以你要么在Windows上,要么你的终端不支持ANSI颜色。如果你在Windows上,只需添加Win32模块。
use strict;
use warnings;
use Win32::Console::ANSI;
use Term::ANSIColor;
my $string = color('red') . 'hello world' . color('yellow') . ' another word';
print $string;
exit 0;
+0
事实是,我使用了curses,这就是问题所在:它看起来像ANSI转义不被curses解释,并且逐字打印。要在熟食模式下直接在标准终端上打印,Term :: ANSIColor可以正常工作。 – persson 2012-08-13 13:14:41
你可以加入一个小的完整程序来显示你的问题吗?我无法根据你在这里的内容复制它。 – 2012-08-12 14:44:47