Cómo imprimir texto en negrita en el doc aquí en Perl?
Pregunta
Estoy utilizando el doc aquí para imprimir mensajes de uso para el usuario. ¿Hay una manera de imprimir palabras específicas negrita ??strong> similar a las páginas del manual en UNIX. Estoy usando esto en Unix. ¿Hay una manera de usar el término :: ANSIColor (o de alguna otra manera?) Con el doc aquí?
Solución
1) Simplemente puede incluir códigos ANSI en heredoc:
print <<EOD;
XXXX\033[1;30;40m YYYY\033[1;33;43m ZZZZ\033[0mRESET
EOD
2) Heredoc interpola las variables, por lo que si se incluyen los colores ANSI en una variable, funciona.
my $v="xxxxx";
$var = "\nXXXX\033[1;30;40m YYYY\033[1;33;43mZZZZ\033[0mRESET\n";
print <<EOD;
$var
EOD
3) Basándose en # 2, usted puede generar códigos ANSI través Term :: método color()
de ANSIColor como una cadena y usar la variable que contiene esa cadena en el heredoc . Lo sentimos, no hay ejemplo de trabajo ya que no tiene instalado ANSIColor pero debería ser obvio.
Es posible que desee almacenar un código ANSI de alguna variable específica y poner el texto actual en heredoc y sprincle variables de código ANSI-allí.
Otros consejos
Se puede utilizar la sintaxis @{[expression]}
dentro de un heredoc para evaluar código arbitrario. La salida de este pequeño programa se verá bien si su terminal tiene un fondo oscuro y la luz color de primer plano:
use Term::ANSIColor;
print <<EOF;
I am using the here doc to print usage messages
for the user. Is there a way to print @{[colored['bright_white'],'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?
EOF