Сижу, значит, никого не трогаю, примус починяю. И тут понадобилось заменить подстроку в строке на другую подстроку. Как всякому правильному программисту, писать самому такую хренотень влом, когда есть Гугл. Но не тут то было, просмотрев топ СЕРП-а по запросу "strreplace Perl" я пришел к выводу, что мир сошел с ума. Вот это предлагают в роли замены strreplace-а (НЕ ВЕРНО!):
sub Replace {
my $strString = shift;
my $strSearch = shift;
my $strReplace = shift;
$strString =~ s/$strSearch/$strReplace/ge;
return $strString;
}
Использовать здесь регулярки в корне не верно уже хотябы из-за того, что попавшая в переменную $strSearch точка будет интерпретироваться как любой символ и в итоге мы получим шанс написать плавающую (пропадающую/возникающую) ошибку. Так что либо пишем над функцией "Счастливой отладки, суки", либо делаем как надо. Правильный вариант замены функции strreplace на Perl:
sub strreplace{
my ($string, $search, $replace) = @_;
while( (my $i = index($string, $search)) > -1 ){
substr($string, $i, length($search), $replace);
}
return $string;
}