用Perl在终端上打印彩色字符

如果在使用Perl的过程中,要在终端上打印出彩色字符,可以使用CPAN中的Term::ANSIColor模块。现在简单地介绍一下这个模块的几种使用方法:

1)use Term::ANSIColor;

color()是把任意数量的颜色属性串成一个用空格分隔的字符串并存到变量color里,然后可以用普通的print方法输出彩色字符串。

例如:

print color ‘bold blue’;
print “This text is bold blue./n”;

这样就会打印出蓝色的粗体字。

记住输出到color里的颜色属性一定要是

clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white

这些。颜色属性不区分大小。普通颜色是设置前景色, 而在前面添加了on_的颜色就是背景色了,例如on_blue就是把背景设成蓝色。

当你打印完需要输出的消息后,记得用reset属性把颜色去掉,否则以后的内容全部都是显示成该种颜色。该语句如下:

print color ‘reset’;

一个完整的例子就是:

print color ‘bold red’;
print “The steps you can do by this auto-tool:/n”;
print color ‘reset’;

2) use Term::ANSIColor qw(:constants);

如果使用这种方法,可以直接把颜色属性放在要输出的问题前面,从而简化输出步骤。这些颜色属性有:

CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE

等。

例如:
print BOLD BLUE ON_WHITE “Text”, RESET, “/n”;

如果你打印完之后想清除掉字符串的格式,一定要记得在最后加上一个RESET的属性值。
例如:

use Term::ANSIColor qw(:constants);
print BOLD, BLUE, “This text is in bold blue./n”, RESET;

3) $Term::ANSIColor::AUTORESET = 1;

对于2)的方法,如果你不想在每条打印语句后面加上RESET的话,你可以直接把$Term::ANSIColor::AUTORESET的值设为true。这样每次打印完字符,只要你的属性值之间没有逗号,系统将自动帮你清除掉颜色属性。

看一个完整的例子:

use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE “This text is in bold blue./n”;
print “This text is normal./n”;

这三种方法,使用起来各有千秋,可根据要打印的复杂程度选用。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值