Я пытаюсь изменить строку, используя Regex и хеш-таблицу, содержащую изменения.Я использую следующий код для изменения:
foreach $key (keys %{$hash{$sub_hash}}){
$line =~ s/$key/$hash{$csub_hash}{$key}/g;
}
И мой хеш-код:
$hash{sub_hush_a}={
"\\mi2ie..." => "\\RSUop...",
"iereset..." => "\\agres...",
};
Проблема заключается в том, что для первой пары в наборе данных, когда он меняетсяон ставит \\
вместо \
, а для второго - только один, как и ожидалось.
Также выдает ошибку: Unrecognized escape \m passed through
.Что не так?
уточнение : точек в именах нет в программе, имена длиннее, чем я положил, и все они содержат только буквы и цифры.точки здесь для того, чтобы сократить.
РЕДАКТИРОВАТЬ:
Проблема исправляется, (двойной \
и сообщение об ошибке), если я меняю кулак парына:
"mi2ie..." => "RSUop...",
(удалите \\
).
Но я все еще хочу знать, в чем проблема, поскольку в будущем мне может понадобиться добавить другие значения, которые могут вызватьпроблема.