В XML-файле мне нужно преобразовать все символы выше символьного кода 127 в соответствующие им буквальные сущности (обычно é
в é
).
Вот что я написал, но это не работает.
sub as_entity{
my $char = shift;
return sprintf("&#x%.4x;", ord($char));
}
sub entitify{
my $str = shift;
$str =~ s/([\x7f-\x{ffffff}])/(?{as_entity($1)})/g;
return $str;
}
Кажется, я не могу использовать (?{...})
в запасной части ...
Каков наилучший способ достичь этого?