Ah, September, when the sysadmins turn colors and fall off the trees....

Dave van Domelen


Term::ANSIColor provides constants and simple functions for setting ANSI text attributes, most notably colors. It can be used to set the current text attributes or to apply a set of attributes to a string and reset the current text attributes at the end of that string. Eight-color, sixteen-color, 256-color, and true color (24-bit color) escape sequences are all supported.


This Perl module is a simple and convenient interface to the ANSI terminal escape sequences for color (from ECMA-48, also included in ISO 6429). The color sequences are provided in two forms, either as constants for each color or via a function that takes the names of colors and returns the appropriate escape codes or wraps them around the provided text. The non-color text style codes from ANSI X3.64 (bold, dark, underline, and reverse, for example), which were also included in ECMA-48 and ISO 6429, are also supported. Also supported are the extended colors used for sixteen-color and 256-color emulators.

This module is very stable, and I've used it in a wide variety of applications. It has been included in the core Perl distribution starting with version 5.6.0, so you don't need to download and install it yourself unless you have an old version of Perl or need a newer version of the module than comes with your version of Perl. I continue to maintain it as a separate module, and the version included in Perl is resynced with mine before each release.

The original module came out of a discussion in comp.lang.perl.misc and is a combination of two approaches, one with constants by Zenin and one with functions that I wrote. I offered to maintain a combined module that included both approaches.


Term::ANSIColor is written in pure Perl and has no module dependencies that aren't found in Perl core. It should work with any version of Perl after 5.8.

In order to see color, you will need to use a terminal window that supports the ANSI escape sequences for color. Any recent version of xterm, most xterm derivatives and replacements, and most telnet and SSH clients for Windows and Macintosh should work, as will the MacOS X Terminal application (although Terminal.app reportedly doesn't support 256 colors). The console windows for Windows NT and Windows 2000 will not work, as they do not even attempt to support ANSI X3.64.

For a terminal emulator compatibility list, see the Term::ANSIColor module documentation. If you have any additions to the table in the documentation, please send them to me.

The following additional Perl modules will be used by the test suite if present:

All are available on CPAN. Those tests will be skipped if the modules are not available.


The distribution:

Term::ANSIColor 5.01 2020-01-18 tar.gz (PGP signature) tar.xz (PGP signature)

An archive of older releases is also available.

Term::ANSIColor is available from CPAN as the Term-ANSIColor distribution.

Term::ANSIColor is maintained using the Git version control system. To check out the current development tree, see GitHub or clone:


Pull requests on GitHub are welcome. You can also browse the current development source.


User documentation:

Developer documentation:


The Term::ANSIColor package as a whole is covered by the following copyright and license:

Copyright 1996-1998, 2000-2002, 2005-2006, 2008-2020 Russ Allbery <rra@cpan.org>

Copyright 1996 Zenin

Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>

This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. This means that you may choose between the two licenses that Perl is released under: the GNU GPL and the Artistic License. Please see your Perl distribution for the details and copies of the licenses.

PUSH/POP support submitted 2007 by openmethods.com voice solutions

Some individual source files are covered by other, compatible licenses. For complete copyright and license information, see the file LICENSE in the Term::ANSIColor source distribution.

Last spun 2020-01-18 from thread modified 2020-01-05