Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Wierd behaviour with HTML::Entities::decode_entities()

by ikegami (Patriarch)
on Dec 13, 2009 at 22:50 UTC ( [id://812623] : note . print w/replies, xml ) Need Help??

in reply to Wierd behaviour with HTML::Entities::decode_entities()

  • Wow, why the switch to insane variable names? You're not even separating the words! Your code is unreadable. (Wall of text.)

  • Anyway, you always discard the result of decode_entities, so I don't see how you could claim it ever works.

  • And the order of the following statements is backwards:

    $decodedParsedContent =~ s/(\s)+/ /g; # remove double whitespace decode_entities(my $decodedParsedContentWithDecodeEntities = $decodedP +arsedContent);

    You're removing the spaces before you decode the entities that might result in spaces.

  • Finally, s/(\s)+/ /g is wrong. Except ? in some very special circumstances, applying a modifier to a capture makes no sense. Which brings to the point that you don't need to be capturing at all. If you need parens, they're (?...): s/(?:\s)+/ /g. Of course, there's one one atom in the parens, so all you need is s/\s+/ /g.

Update: "If called in void context the arguments are decoded in-place.", oops.

Your test produces waaaaay too much output, so I can't even see the problem, much less diagnose it.