The above answers ('bout ANSIColor) are all you need really. Just for the record I would like to submit a short subroutine that I threw together a long time ago. I use it from time to time in my projects.
(Of course Term::ANSIColor isn't that hard to use in it self, but I like to be able to write short colorcodes). Here goes:
Note: The second parameter to colorparse() should be set to a true value if the output is to be used with Term::ReadLine.
use strict; use Term::ANSIColor qw/:constants/; use Carp; print colorparse("%CThis is bright/bold cyan%n and this is normal text +.\n"); print colorparse("%RC%Yo%Bl%Mo%Cr%n rocks!\n"); sub colorparse { my $txt = shift; my $is_prompt = shift || 0; if (not defined $txt) { croak("error: missing parameter\nusage: colorparse(\$txt,\$is_prom +pt)"); } my %transtbl = ( k => RESET . BLACK , K => RESET . BLACK . BOLD , r => RESET . RED , R => RESET . RED . BOLD , g => RESET . GREEN , G => RESET . GREEN . BOLD , y => RESET . YELLOW , Y => RESET . YELLOW . BOLD , b => RESET . BLUE , B => RESET . BLUE . BOLD , m => RESET . MAGENTA , M => RESET . MAGENTA . BOLD , c => RESET . CYAN , C => RESET . CYAN . BOLD , w => RESET . WHITE , W => RESET . WHITE . BOLD , n => RESET ); if ($is_prompt) { $txt =~ s/%([kKrRgGyYbBmMcCwWn])/\001\001$transtbl{$1}\001\002/g; } else { $txt =~ s/%([kKrRgGyYbBmMcCwWn])/$transtbl{$1}/g; } $txt =~ s/%%/%/g; return($txt); }
--
dempa
In reply to Re: Inserting a little life to my output
by dempa
in thread Inserting a little life to my output
by hotshot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |