Подтвердить что ты не робот

Как удалить предупреждение "Большой символ в печати"?

У меня есть это предупреждение каждый раз, когда я запускаю свой CGI- script (вывод визуализируется с помощью Template:: Toolkit):

Wide character in print at /usr/local/lib/perl5/site_perl/5.8.9/mach/Template.pm line 163.

Какой правильный способ его устранить?

Я создаю объект tt с помощью этого config:

my %config = (
       ENCODING     => 'utf8',
       INCLUDE_PATH => $ENV{TEMPLATES_DIR},
       EVAL_PERL   => 1,
}
my $tt = Template->new(\%config); 
4b9b3361

Ответ 1

Поместите это перед вызовом $tt->process(), чтобы автоматически вывести вывод:

binmode STDOUT, ':utf8';

Изменить. Как упоминалось daxim, можно использовать средства кодирования TT:

$tt->process($infile, $vars, '-', { binmode => ':utf8' })

Это зависит от широко используемого соглашения о том, что имя файла '-' дает вам STDIN, когда оно открывается для чтения, и STDOUT, когда оно открывается для записи.

Изменить 2: BTW, последний способ, похоже, не работает для меня в mod_perl (2.0.5).