我想在终端支持颜色时以彩色方式将某些输出输出到终端,否则以普通方式打印。另外,当程序不是交互式运行时,例如,我希望没有颜色。通过管道传输到grep中。
在Perl中执行此操作的最佳方法是什么?我希望有一些像这样的API:
<?php
...
$sql = sqlsrv_query($conn, $query);
do {
while($item = sqlsrv_fetch_array($sql)){
var_dump($item);
}
} while (sqlsrv_next_result($sql));
...
?>
在不适当的情况下,实现将忽略颜色代码。
答案 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";