Pregunta

Estoy utilizando el doc aquí para imprimir mensajes de uso para el usuario. ¿Hay una manera de imprimir palabras específicas negrita 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í?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top