Цитата:
Goryn:
Как мне использовать переменную в регулярном выражении.
|
Также как и постоянную строку, есть только одна деталь. Если значение переменной формируется многократно, то никаких дополнительных опций не надо (Пример 1). Если же только один раз, есть опция 'o', по которой реализация значения переменной происходит только первый раз (Only compile pattern once) а далее всегда используется это значение, вне зависимости от значения переменной на момент вызова подстановки строк (Пример 2).
Пример 1
Код:
$match_str = '1';
$replace_str='bb';
for $name (@files) {
$name =~ s/${match_str}/${replace_str}/g;
$match_str++;
}
Пример 2
Код:
$match_str='aa';
$replace_str='bb';
for $name (@files) {
$name =~ s/${match_str}/${replace_str}/og; # Заменяет всегда aa
$match_str='zz';
}