On Jan 23, 2011, at 1:59 PM, Ivan Petrov wrote:

> > А если use encoding 'utf8'; ?
> 
> а при чем тут encoding? в него еще искусственный интеллект вроде не встроили 
> чтобы отличать строки с багами от остальных
> 

Кстати, да.
Проверил на Ubuntu

#!/usr/bin/perl

use strict;
use warnings;
use encoding 'utf8';
open qw(:std :utf8);

use locale;
use POSIX qw(locale_h strtod);

setlocale(LC_ALL, "ru_RU.UTF-8");

my $a = qq(п р и в е т);
print 'yes'."\n" if ( $a =~ /\w+/ ) ;
print uc($a),"\n";

open(my $fh, '<', 'decodeabrakadabra/not-found') or die "Ошибка открытия файла: 
".$!;

дает нам 

$ ./01-test.pl
yes
П Р И В Е Т
Ошибка открытия файла: Нет такого файла или каталога at ./01-test.pl line 18.

т.е. оно верно интерпретирует русский и нормально печатает локализованную 
ошибку.

Или я опять чего-то не учел?

> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить