Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to print BOLD text in here doc in Perl?

I am using the here doc to print usage messages for the user. Is there a way to print specific words BOLD similar to the man pages on unix. I am using this on Unix. Is there a way to use Term::ANSIColor(or some other way?) with the here doc?

like image 849
Wilderness Avatar asked Dec 12 '22 18:12

Wilderness


1 Answers

1) You can simply include ANSI codes into heredoc:

print <<EOD;
XXXX\033[1;30;40m YYYY\033[1;33;43m ZZZZ\033[0mRESET
EOD

2) Heredoc interpolates the variables, so if you include ANSI colors into a variable, it works.

my $v="xxxxx";
$var = "\nXXXX\033[1;30;40m YYYY\033[1;33;43mZZZZ\033[0mRESET\n";
print <<EOD;
$var
EOD

3) Building on #2, you can generate ANSI codes via Term::ANSIColor's color() method as a string and use the variable containing that string in the heredoc. Sorry, no working example since I don't have ANSIColor installed but should be obvious.

You may want to store a specific ANSI code in some specific variable and put the actual text in heredoc and sprincle ANSI-code variables there.

like image 81
DVK Avatar answered Jan 05 '23 23:01

DVK