in reply to Encode quotes except in HTML?

If the idea of subclassing gets a bit messy, you can also use the V3 API to HTML::Parser directly, as in:
use HTML::Parser; HTML::Parser->new( default_h => [sub { print shift; }, "text"], text_h => [sub { local $_ = shift; s/\"/&quot;/g; print; }, "text"], )->parse(join "", <DATA>); __END__ <a href="bob.html">"Hi!"</a>

-- Randal L. Schwartz, Perl hacker

Replies are listed 'Best First'.
RE: Re: Encode quotes except in HTML?
by tye (Sage) on Sep 18, 2000 at 23:14 UTC

    I've noticed join "",<HANDLE> several times recently and just got curious exactly how much slower that is than the way I'd do it: local($/)= undef; <HANDLE>

    For 32KB of data, I get the join method being about 8 times slower than the "slurp" method. But they both read that 32KB in under 1/100th of a second and the join method can be written as a simple expression while doing so for the slurp method gets tricky. So I can certainly see going for the join method in some cases.

            - tye (but my friends call me "Tye")
      And if you want to be as efficient as possible, use:
      read DATA, $str, -s DATA;
      but that's not convienient for things like the above either. It's a laziness/efficiency tradeoff :)
      Updated due to merlyn's comment below (oops).

        Though in this case, sysread was only 4% faster than "slurp" and read was 2% faster than sysread (which makes me suspicious that I can't trust the numbers to that level of accuracy). So the trade-off is a no-brainer for me. ;)

                - tye (but my friends call me "Tye")