Регулярные выражения, Regexp::Common и UTF-16
Вот есть некий фрагмент кода
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 читал, но не очень понял, как же быть именно с моим случаем.