http://qs1969.pair.com?node_id=345096


in reply to Dealing with Word Compact HTML

Using a one-liner like yours to parse HTML is going to be problematic, because line breaks, carriage returns, tabs, "regular" (0x20) spaces, and a few other special characters are all considered equivalent whitespace. It's hopeless to try to predict whether the opening and closing tags will be on the same line or not.

Like others, I'd strongly recommend using something like HTML::Parser.

That said, if you really don't want to parse HTML for real, you can work around the problem by slurping the whole file into a single scalar and searching for the tags using a regex with the /s modifier. But be careful. <b> tags can in fact have attributes, like this: <b style="font-size: 200%">. Your regex will not catch cases like that, though if you have sufficient control over the formatting of the original documents this may not be a problem.

        $perlmonks{seattlejohn} = 'John Clyman';