При работе с большими строками нужно избегать внутреннего копирования строк,
которое происходит при использоании регулярных выражений или оператора split.
Для разбиеная строки вида "small_begin:big_end" на две подстроки используем:
my $pos=index($str, ':');
my $begin_str = substr($str, 0, $pos,"");
# в $str остается только big_end часть, в $begin_str - "small_begin:"
Соответсвенно, для замены символов удобно использовать:
substr(строка, начало замены, число заменяемых символов, блок на который заменяем);
|