in reply to Inserting a little life to my output
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Inserting a little life to my output
by hotshot (Prior) on Dec 17, 2002 at 14:49 UTC | |
by dempa (Friar) on Dec 17, 2002 at 15:04 UTC | |
|
Re: Re: Inserting a little life to my output
by agentv (Friar) on Dec 17, 2002 at 18:45 UTC |