> вот строки с 243
> 243 if ($self->get('a'.$i) =~ /\C/) {
> 244 $answers .= $self->getValue("a".$i)."\n";
> 245 } Насколько я понимаю, здесь всего лишь проверяется, что get возвращает непустую строку, поскольку /\C/ соответствует любой строке, содержащей хотя бы один байт, то есть любой непустой строке. \C — это низкоуровневая штука, понятно, почему её искореняют.
Напрашивается замена на «ne ''».
>[оверквотинг удален]
> sub escape_char {
> - return join '', @URI::Escape::escapes{$_[0] =~ /(\C)/g};
> + if (utf8::is_utf8($_[0])) {
> + my $s = $_[0];
> + utf8::encode($s);
> + unshift(@_, $s);
> + }
> +
> + return join '', @URI::Escape::escapes{$_[0] =~ /(.)/sg};
> }
Тут немного не про то, и как-то слишком намудрено по-моему: если строка в UTF-8, её снова кодируют в UTF-8. Хотя, контекста не видно, может тут так оно и надо.