Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: /o is dead, long live qr//!

by Abigail-II (Bishop)
on Jun 26, 2003 at 01:25 UTC ( #269073=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: /o is dead, long live qr//!
in thread /o is dead, long live qr//!

I know how the qr stringifies, and that's exactly the problem. However, when qr was introduced (which was long after perl5 as suggested elsewhere in this thread, I think it was 5.005) it was suggested that qr would be faster when interpolating. Even if you change the middle part of the benchmark to $x = qq "$x" and $x = qr "$x", the qq is three times as fast as the qr.

I've had programs come to a grinding halt after using qr too liberaly.

Abigail


Comment on Re: /o is dead, long live qr//!
Select or Download Code
Re: Re: /o is dead, long live qr//!
by belg4mit (Prior) on Jun 26, 2003 at 01:31 UTC
    Right. However, one might not unreasonably claim that the Right Thing for qr to do is clean its input if it is given the output from another qr to avoid such messes.

    UPDATE: Meanwhile, a possible solution is to uh, not nest qrs? ie; use the original strings to build up a single expression passed to qr. If anything, that ought to be simpler than using qr'd segments, and saves steps.

    --
    I'm not belgian but I play one on TV.

Re: Re: /o is dead, long live qr//!
by diotalevi (Canon) on Jun 26, 2003 at 04:00 UTC

    I don't recall ever suggesting that qr objects should actually be interpolated. The only reason I ever interpolate those is because I can write the original regex without having to go backwhack happy on \s and friends. There's also not much point in interpolating qr objects because you get bit for compiling that bit more than once anyway. But you knew all that anyway. *grin*

    But given the nature of qr, I don't see why you'd want to keep stables of them around just to interpolate them anyway. The whole point of a qr object is that it is a complete regex. Also, once that complex regex is parsed all the frippery is thrown away anyway so it doesn't really change runtime performance. So I don't think you've said anything about why not to use qr. You just stated that it isn't useful to keep qr objects around if they're just going to be interpolated back into other expressions.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://269073]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2014-11-28 17:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (199 votes), past polls