To do this correctly you need to handle HTML correctly. The best way to do that is to work within the bounds of a module like HTML::Parser that can tell you when a piece of text is inside a tag or not.
There's a good bit to learn in getting started with HTML::Parser, but it's a worthy investment of your time. If you try to handle this on your own, you'll end up having to code most or all of the cases yourself.