Term::Readline: вопрос о кодировке

Когда я ввожу «Мюллер», на экране появляется «Мюллер». Как я могу это исправить?

#!/usr/bin/env perl
use warnings;
use 5.012;
use Term::ReadLine;

my $term = Term::ReadLine->new( 'dummy' );

my $con = $term->readline( ': ' );

say $con;

# On the screen:
# : M��ller                                                                                                                                                   
# Müller

person sid_com    schedule 11.02.2011    source источник


Ответы (1)


Примените слой :utf8 к файловым дескрипторам STDIN и STDOUT и передайте их в качестве аргументов Term::ReadLine->new():

binmode STDIN,  ':utf8';
binmode STDOUT, ':utf8';

my $term = Term::ReadLine->new( 'dummy', \*STDIN, \*STDOUT );
person Alan Haggai Alavi    schedule 11.02.2011