Если текст брать из файла, то не получается. Например, если создать текстовый файл с текстом: тестовое слово (и сохранить по умолчанию в кодировке ANSI), то в итоге получается такой текст: тҐ±Іовое слово. Если же созданный текстовый файл сохранить в UTF8, то никаких изменений не происходит вообще. Код такой: Code: use open ":utf8"; use utf8; open (FILE, '<slovo.txt'); @slovo = <FILE>; close FILE; $text = ucfirst"@slovo"; print $text; open f, ">ucfirsted.txt"; print f "$text\n"; close f; <STDIN>;
Вы для начала с кодировкой определитесь. У вас прагмы для utf8, а открываете файл в цп1251 Исходный текст Code: тестовое слово текст брать из файла не получается файл с текстом UTF-8 Code: #!/usr/bin/perl use strict; use warnings; use utf8; use open qw /:utf8 :std/; $\ = "\n"; open my $F, '<', '82_utf8.txt' or die "open error: $!"; chomp (my @lines = <$F>); close $F; @lines = map {ucfirst $_} @lines; print join ' : ', @lines; Вывод Code: Тестовое слово : Текст брать из файла : Не получается : Файл с текстом ЗЫ. Если у вас все же кодировка CP1251, то ее и стоит указать либо в прагме open, либо при открытии файла Code: use open ':encoding(cp1251)'; open my $FILE, '<:encoding(cp1251)', 'file.txt';