sid*_*com 11 perl printf colors
有没有办法获得printf彩色输出?
#!/usr/bin/perl
use warnings;
use strict;
use Term::ANSIColor;
printf "%4.4s\n", colored( '0123456789', 'magenta' );
Run Code Online (Sandbox Code Playgroud)
输出:(仅换行)
hlo*_*dal 19
我假设您需要以下内容:
#!/usr/bin/perl
use warnings;
use strict;
use Term::ANSIColor;
print colored( sprintf("%4.4s", '0123456789'), 'magenta' ), "\n";
Run Code Online (Sandbox Code Playgroud)
mur*_*uga 10
您需要更改以下代码
printf "%s\n", colored( '0123456789', 'magenta' );
Run Code Online (Sandbox Code Playgroud)
因为我们无法获得字符串中的前4个字符.如果将字符串值赋给printf函数,它将打印值最多为null字符.我们无法获得前4个字符.
问题是"%4.4s \n"尝试"%s \n"它会起作用.原因是颜色是字符(逃避字符),你正在削减它们.尝试printf"%s \n",长度(彩色('0123456789','绿色')); 要更好地理解.
小智 5
打印彩色输出的最简单方法是
use Term::ANSIColor qw(:constants);
print RED, "Stop!\n", RESET;
print GREEN, "Go!\n", RESET;
Run Code Online (Sandbox Code Playgroud)