Я хочу изменить цвет сообщения в моем скрипте perl. В настоящее время я использую Term :: ANSIColor , чтобы изменить другие цвета в моем скрипте. Проблема, с которой я сталкиваюсь с сообщениями die, заключается в том, что после того, как скрипт умирает, он не может сбросить цвет до значения по умолчанию для терминала, и подсказка терминала - это тот цвет, который последний раз использовался в моем скрипте. В этом случае он становится красным.
Есть идеи, как можно заставить скрипт умереть, но все же поменять цвет обратно?
Вот кодовый блок, о котором идет речь;
#!/usr/bin/perl
use strict;
use warnings;
require Term::ANSIColor;
use Term::ANSIColor;
print "Loading configuration file\n";
# Check if the specified configuration file exists, if not die
if (! -e $config_file_path) {
print color 'red';
die "$config_file_path not found!\n";
print color 'reset';
} else {
print color 'green';
print "$config_file_path loaded\n";
print color 'reset';
}
Обновление
Это работает, но теперь я не могу избавиться от той части статуи кубика, которая говорит, по какой линии это произошло.
Loading configuration file
/etc/solignis/config.xml not found!
at discovery.pl line 50.
Обычно я просто добавляю функцию разрыва строки, и это исключает любую нормальную ошибку, выводимую из матрицы. Есть идеи, почему он это делает?
Обновление 2
Основываясь на всех ваших рекомендациях, я сделал это вместе.
print STDERR RED, "$config_file_path not found!";
die RESET, "\n";
Кажется, работает правильно. Использование констант для Term :: ANSIColor 1 было идеальной вещью, в которой я нуждался для простых вещей.