в PHP все делалось так:
$b = iconv("UTF-8","windows-1251", $a );
В Perl делаеться так:
use Encode;
$b = Encode::encode('cp1251',$a);
Пояснения:
Из коробки Perl не умеет конвертировать, поэтому оптимально подключить лишь Encode. Кстати можно было написать и так:
use Encode qw(encode);
$b = encode('cp1251',$a);
В этому случае код перекодировки стал более приятным, однако потерянный неймспейс в дальнейшем мог бы спровоцировать непонятки.
Ну и как видно название кодировочки разное. В PHP iconv универсальна, а в случае с Perl не совсем ясно из какой кодировки происходит конверт, поэтомувообще гвооря правильнее написать так:
$title = Encode::encode('cp1251',$a) if Encode::is_utf8 ($a);
В этом случае конверт будет происходить только если задетектиться UTF в строке, что собственно и лучше честно говоря.
Да, понимание у Perl несколько сложнее, надо что-то подключать, что дает в данном случае гибкость Perl не совсем ясно, однако в результат код Perl может оказаться короче и приятнее на взгляд.