http://www.perlmonks.org?node_id=158544


in reply to Re: Re: Open to suggestions on a search and replace..
in thread Open to suggestions on a search and replace..

You can use a positive lookahead assertion to avoid having to reinsert $1. $line =~ s/^(?=R.*\$SUB=)<\*\d+>//;

aehhm, this won't work. The lookahead doesn't move the position in your regex, so you are effectively looking for /^<\*\d+>/ which isn't there. Instead you would need a look behind assertion but they are only available for constant length.

As I understand the file format there are no other digits in angle brackets starting with a star. So why not simply write: s/<\*\d+>//;

Update: As of Rhodium's clarification of the specs, I would now fully recommend IO's solution.

-- Hofmator