Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

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.


Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://269073]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2018-06-23 04:50 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.