0

编写 Perl 代码。我知道我可以使用 Term::ANSIColor 并做

print color('red') . 'hello world';

但是,在这种情况下,我正在使用一个 curses 库,我想创建一个标签,其中一些单词是红色的,一些是黄色的,等等。我可以操作的是一个字符串,我将把它传递给库用于渲染。如果我做

$string = color('red') . 'hello world' . color('yellow') . ' another word';

然后当我将 $string 传递给库进行打印时,它会逐字打印 ANSI 转义序列。有没有办法做我想做的事情,或者我必须用 attron() 和朋友手动管理标签的绘制?

提前致谢。

4

1 回答 1

0

我在 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;
于 2012-08-12T19:12:03.583 回答