Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Регулярные выражения, Regexp::Common и UTF-16

19K
18 июля 2006 года
Даниил
1 / / 18.07.2006
Вопрос в следующем:

Вот есть некий фрагмент кода

use Regexp::Common qw[Email::Address];
use Email::Address;
...
...
my $text = read_textfile($fullpath);

###ищем e-mail'ы в файле
my (@found) = ($text=~ m/($RE{Email}{Address})/g);
my (@addrs) = map $_->address,
Email::Address->parse("@found");

##ищем числа в файле
my (@d) = ($text =~m/(\d+)/g);

###Функция считывания из файла
sub read_textfile
{
my $filename = $_[0];
my $str = '';
my @arr;

if (open(TEXT_FILE, $filename))
{
@arr = <TEXT_FILE>;
close(TEXT_FILE);
}
else
{
print "error reading $filename : $! <BR>";
}
return join('',@arr);

}



Всё работает хорошо, если мы имеем обычный ANSI-файл.

А если файл записан в UTF-16, то ничего не работает. Вопрос - что нужно, чтобы регулярные выражения и Regexp::Common работали и в UTF-16?


Документацию по работе с Unicode в Perl читал, но не очень понял, как же быть именно с моим случаем.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог