Я не знаю как вы получаете входные данные, считываете их из БД или файла,
всего кода не вижу, в общем, копайте в сторонуuse open IO => ":raw:utf8";
use open "IN" => ":bytes", "OUT" => ":utf8";
или
use open "IN" => ":encoding(cp850)", "OUT" => ":utf8", ":std";
или
binmode (STDIN, ":utf8");
binmode (STDOUT, ":utf8");
а можно так
binmode (STDOUT, ":encoding(utf8)");
открыть файловый манипулятор
open (my $fh, "<:utf8", $inputfile);
указать входную/выходную кодировку
open (my $inputfh, "<:encoding(cp850)", $inputfile);
open (my $outputfh, ">:encoding(ENCODING_NAME)", $outputfile);
а может только входную строку $string конвертировать достаточно?
тогда так
use Encode qw(encode decode);
$string = Encode::decode('koi8r', $string);
вариантов много, что-нибудь да получится