我编写了一个Perl程序,为其输出着色。
不幸的是,我还有一个解释器来运行我的程序并显示其输出而不了解任何ANSI转义序列。
简单绕过Term::ANSIColor
的正确方法是什么?始终对每个say
或print
语句处理这两种情况都很糟糕,即say ($ENV{'TERM'} ne 'NONE')?colored('foo', green):'foo';
欢迎提出任何建议。
答案 0 :(得分:4)
使用ANSI_COLORS_DISABLED
环境变量:
<强> ANSI_COLORS_DISABLED 强>
如果此环境变量设置为true值,则此模块定义的所有函数(color(),colored()和之前未在程序中使用的所有常量)都不会输出任何转义序列和而是只返回空字符串或适当地传递原始文本。这旨在支持在不支持ANSI转义序列的平台上使用此模块轻松使用脚本。