$&
делает то, что вы хотите, но видите предупреждение о работоспособности в perlvar
Использование этой переменной в любом месте программы налагает значительное снижение производительности на все регулярные выражениясовпадения.
Если вы можете найти способ сделать это без использования $&
, попробуйте это.Вы можете запустить регулярное выражение дважды:
my ($match) = /(\w+)/;
if (s/(\w+)/new/) {
my $oldTxt = $match;
# ...
}