Ncurses用Perl转义

5jvtdoz2  于 2023-03-23  发布在  Perl
关注(0)|答案(1)|浏览(144)

写Perl代码。我知道我可以用Term::ANSIColor和做

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

然而,在这种情况下,我使用的是curses库,我想创建一个标签,其中一些单词是红色的,一些是黄色的,等等。我所能操作的是一个字符串,我将把它传递给库进行渲染。如果我这样做了

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

那么当我将$string传递给库进行打印时,它会打印出一字不差的ANSI转义序列。有没有一种方法可以完成我正在尝试做的事情,或者我必须用attron()和朋友手动管理标签的绘制?

6mw9ycah

6mw9ycah1#

我在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;

相关问题