Установка binmode после получения количества столбцов, кажется, помогает:
say $string;
my $columns = ( Term::Size::chars *STDOUT{IO} )[0];
binmode STDOUT, ':encoding(UTF-8)';
say $columns;
say $string;
Выходы
Hällö
80
Hällö
Странно то, что этот код прекрасно работает с Perl 5.8 (вывод правильный) без необходимости сбрасывать binmode