a*
означает ноль или более экземпляров :права?
так почему же $_ = "a"; s/a*/e/g
производит:ee
Возможный ответ :заменяет строку :"a" на :"e", а также заменяет пустую строку :"" на :"e". Или заменяет простое отсутствие буквы :a буквой :e или заменяет «нулевые вхождения» :a на :e
Хорошо, но:
$_ = "b"; s/a*/e/g
производит:ebe
Кажется, он заменяет пустую строку слева от:b
и также пустая строка справа от:b
ХОРОШО. Но тогда почему он не делает этого для :" a
" ? Почему он не заменяет пустую строку слева от :a
? и также пустая строка справа от :a и также сама буква :a, чтобы получить:eee
?
Нулевых вхождений :a в левой части столько же, сколько и в правой!