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