Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Ter::ANSIColor is awesome, but.. (need help)

by Corion (Pope)
on Mar 30, 2014 at 13:32 UTC ( #1080288=note: print w/replies, xml ) Need Help??

in reply to Term::ANSIColor is awesome, but.. (need help)

Separate the program logic and the output.

Within your program, always keep $name eq 'Jon', and have a routine, output_name(), which does

print colored($name,'red');

or a function visual_name, which returns the value, ready for printing as name:

sub visual_name { my( $name )= @_; colored( $name, 'red' ); };

Replies are listed 'Best First'.
Re^2: Ter::ANSIColor is awesome, but.. (need help)
by mascip (Pilgrim) on Mar 30, 2014 at 13:49 UTC

    Thank you Corion.
    That makes sense, but it doesn't exactly solve my problem. I don't want to make this change in every part of the code where I'm displaying something.

    I guess, most of my print statements are in the same file in fact, apart from exceptions. (Edit: In fact I just realized that I would really like these exceptions to be colourized...)

    I'll try this tomorrow. But I'm still wondering if there is a better way...

      The starting point of my reasoning is:

      There is only one place where I declare the variables that I want to colorize. If I could colorize them then and nowhere else, that would be much simpler.

        You will need to split up the two uses of $name, for internal program logic and for display.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1080288]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2018-03-24 06:52 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (297 votes). Check out past polls.