17 окт. 2020, суббота, в 11:15 NOVT, Stas Mishchenkov написал(а):
SM> use locale;
SM> # [...]
SM> undef $fromchrs;
SM> if ( $Text =~ /\001CHRS\:[ ]*([^ ]+)[ ]+\d+/ ) {
SM> $fromchrs = lc($1);
SM> writelog("Charset found: \'$fromchrs\'.");
SM> } else {
SM> $fromchrs = 'cp866';
SM> writelog('Warning: No @CHRS kludge. Using default
SM> }
Это не тот код, который реально работает. Этот содержит ошибки и
даже не запустится.
Кроме того, undef лишний. Отдельный пробел незачем забирать в квадратные
скобки.
Двоеточие незачем экранировать. Hе отмечено, что матчинг должен идти
с начала строки. Попробуй так:
if ($Text =~ /^.CHRS:\s*([^ ]+)\s+\d+/) {
Eugene