La soluzione a questo problema è l'uso del modulo Term::ANSIColor di Perl. Grazie a questo modulo possiamo modificare l'output del nostro script come vogliamo. Ecco alcuni esempi:
use Term::ANSIColor;
print color("red"), "Attenzione! n", color("reset");
print colored("<BLINK>Questo lampeggia</BLINK>", blink);
Si può usare anche lo standard del modulo per fare le stesse cose:
use Term::ANSIColor qw(:constants);
print RED,"Attenzione1n", RESET;
Come si evince, esistono due modi per usare questo modulo. Il primo è tramite le chiamate delle funzioni esportate color($attribute) e colored($text,$attribute); il secondo è quello di usare le funzioni "standard" del modulo (BOLD, BLUE, RESET ). L'attributo può essere una combinazione di colori e controlli. I colori possono essere: red, green, blue, Magenta, on_black, on_yellow, on_green, on_blue; i control possono essere: clear, reset, bold, underline, underscore, blink, riverse, concealed.
Clear e reset svolgono la stessa funzione così come underline e underscore.
Il comando RESET riporta i settaggi dei colori allo stato iniziale, cioè prima dello start del nostro script. Concealed resetta il foreground ed il background.
Gli attributi possono essere concatenati gli uni agli altri. Ecco alcuni esempi di concatenamento degli attributi.
Print color("red on black"), "lago vivernen";
Print color("green on_cyan blink"), "benvenutin";
Oppure si può scrivere:
print colored("lago vivernen", "red", "on_black");
print colored("benvenutin", "green", "on_cyan", "blink");
Se usiamo lo standard:
print BLACK, ON_WHITE, "Bianco su neron";
print GREEN,ON_CYAN, BLINK, "benvenutin";
E' buona norma resettare le impostazioni dei colori al termine del programma. Questo si può effettuare con il comando print RESET o print color("reset"). Per essere certi che i colori siano resettati si può usare questa sintassi :
END { print color(“reset”); }