Perl中的彩色端子输出

时间:2019-01-09 20:08:22

标签: perl terminal ncurses

我想在终端支持颜色时以彩色方式将某些输出输出到终端,否则以普通方式打印。另外,当程序不是交互式运行时,例如,我希望没有颜色。通过管道传输到grep中。

在Perl中执行此操作的最佳方法是什么?我希望有一些像这样的API:

<?php
...
$sql = sqlsrv_query($conn, $query);
do {
   while($item = sqlsrv_fetch_array($sql)){
      var_dump($item);
   }
} while (sqlsrv_next_result($sql));
...

?>

在不适当的情况下,实现将忽略颜色代码。

1 个答案:

答案 0 :(得分:5)

Term::ANSIColor产生彩色输出。

-t STDOUT,以测试是否向终端打开了标准输出。

$ENV{ANSI_COLORS_DISABLED}动态禁用Term::ANSIColor

use Term::ANSIColor;
$ENV{ANSI_COLORS_DISABLED}++ unless -t STDOUT;
print colored("Hi","red")," mom!\n";