ВСЕГДА используйте use strict; use warnings qw( all );
!!!Это идентифицировало бы вашу проблему: ==
для сравнения чисел, в то время как строки сравниваются с использованием eq
.
my @chars = split //;
for my $char (@chars) {
if ($char eq 'a') {
print $color;
print $char;
print $reset;
} else {
print $char;
}
}
. Вы также можете использовать следующее:
s/a/${color}a$reset/g;
print;
Этопоследнюю версию легче расширить.
s/([aeiou])/$color$1$reset/g;
print;