No need to get all complicated and stuff...
And then you go on to do precisely that. With a "manual cleanup" and another script to boot. And I bet it would still break.
What is so hard about using a parser?
#!/usr/bin/perl
use strict;
use warnings;
use HTML::TokeParser::Simple;
my $p = HTML::TokeParser::Simple->new(*DATA);
my $html;
while (my $t = $p->get_token){
next if
$t->is_start_tag('a')
or
$t->is_end_tag('a');
$html .= $t->as_is;
}
print "$html\n";
__DATA__
<p>some text</p>
<a href="./somelink.html">This is a url :O </a>
<p>some more text</p>
output:
<p>some text</p>
This is a url :O
<p>some more text</p>
Somebody else has done all the hard work why give yourself pain?
In my opinion using any regex on any html is the way to madness.