http://www.perlmonks.org?node_id=1040269


in reply to Re^5: How to print colored word in text file
in thread How to print colored word in text file

++hdb. For something different, I would use Win32::Console::ANSI and Term::ANSIColor::Print.
#!/usr/bin/perl BEGIN { $| = 1; $^W = 1; eval { require Readonly; }; } use strict; use warnings; use Win32::Console::ANSI; use Term::ANSIColor::Print; my $print = Term::ANSIColor::Print->new(); $print->bold_blue( "This text is bold blue." ); $print->normal( "This text is normal" ); $print->bold_yellow_on_magenta( "This text is bold yellow on magenta", ); $print->normal( "This text is normal." ); print "To print a specific word such as ERROR in red: "; $print->red("ERROR");
I don't have access to a Windows machine, so it isn't tested. Please let me know if it works for you.

Replies are listed 'Best First'.
Re^7: How to print colored word in text file
by soonix (Canon) on Jun 23, 2013 at 17:23 UTC

    Bold and Normal did work, colors didn't...
    (Win 7 Pro 64bit, Strawberry PortableZIP version 5.16.2)

    However, as I recall, under MSDOS you had to enable ANSI.SYS for color codes to work.

    Wikipedia says this still holds true up to Vista. Obviusly, Win 7 is no different...

    Update: seems like
        use Win32::Console::ANSI;
    changes the behaviour of Term::ANSIColor, but not the behaviour of Term::ANSIColor::Print ...

      Thanks for the feedback. I'll remember ANSI.SYS now:-).
Re^7: How to print colored word in text file
by hdb (Monsignor) on Jun 24, 2013 at 06:39 UTC

    Thanks for the example. I get the same effect as soonix. What is quite interesting I find, is that use Win32::Console::ANSI; is not used explicitly and the script runs without it as well, but no effect on the appearance of the text, it prints the escape codes instead. With this line, at least bold works.