А чем мой вариант не подошел? Если реально нужны все остальные символы-кракозябры (только зачем?), тогда нужно всего лишь добавить второй хэш и одну! строку замены:
#!/usr/bin/perl
my %ru1 = (
'00' => 'Ђ',
'01' => 'Ѓ',
'02' => '‚',
'03' => 'ѓ',
'04' => '„',
'05' => '…',
'06' => '†',
'07' => '‡',
'10' => '€',
'11' => '‰',
'12' => 'Љ',
'13' => '‹',
'14' => 'Њ',
'15' => 'Ќ',
'16' => 'Ћ',
'17' => 'Џ',
'20' => 'ђ',
'21' => '‘',
'22' => '’',
'23' => '“',
'24' => '”',
'25' => '·',
'26' => '–',
'27' => '—',
'30' => ' ',
'31' => '™',
'32' => 'љ',
'33' => '›',
'34' => 'њ',
'35' => 'ќ',
'36' => 'ћ',
'37' => 'џ',
'40' => ' ',
'41' => 'Ў',
'42' => 'ў',
'43' => 'Ј',
'44' => '¤',
'45' => 'Ґ',
'46' => '¦',
'47' => '§',
'50' => 'Ё',
'51' => '©',
'52' => 'Є',
'53' => '«',
'54' => '¬',
'55' => ' ',
'56' => '®',
'57' => 'Ї',
'60' => '°',
'61' => '±',
'62' => 'І',
'63' => 'і',
'64' => 'ґ',
'65' => 'µ',
'66' => '¶',
'67' => '·',
'70' => 'ё',
'71' => '№',
'72' => 'є',
'73' => '»',
'74' => 'ј',
'75' => 'Ѕ',
'76' => 'ѕ',
'77' => 'ї'
);
my %ru2 = (
'00' => 'А',
'01' => 'Б',
'02' => 'В',
'03' => 'Г',
'04' => 'Д',
'05' => 'Е',
'06' => 'Ж',
'07' => 'v',
'10' => 'И',
'11' => 'Й',
'12' => 'К',
'13' => 'Л',
'14' => 'М',
'15' => 'Н',
'16' => 'О',
'17' => 'П',
'20' => 'Р',
'21' => 'С',
'22' => 'Т',
'23' => 'У',
'24' => 'Ф',
'25' => 'Х',
'26' => 'Ц',
'27' => 'Ч',
'30' => 'Ш',
'31' => 'Щ',
'32' => 'Ъ',
'33' => 'Ы',
'34' => 'Ь',
'35' => 'Э',
'36' => 'Ю',
'37' => 'Я',
'40' => 'а',
'41' => 'б',
'42' => 'в',
'43' => 'г',
'44' => 'д',
'45' => 'е',
'46' => 'ж',
'47' => 'з',
'50' => 'и',
'51' => 'й',
'52' => 'к',
'53' => 'л',
'54' => 'м',
'55' => 'н',
'56' => 'о',
'57' => 'п',
'60' => 'р',
'61' => 'с',
'62' => 'т',
'63' => 'у',
'64' => 'ф',
'65' => 'х',
'66' => 'ц',
'67' => 'ч',
'70' => 'ш',
'71' => 'щ',
'72' => 'ъ',
'73' => 'ы',
'74' => 'ь',
'75' => 'э',
'76' => 'ю',
'77' => 'я'
);
while (<>) {
s/3022([0-9]{2})/$ru1{$1}/g;
s/3032([0-9]{2})/$ru2{$1}/g;
print;
}