Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

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

by belg4mit (Prior)
on Jun 26, 2003 at 01:02 UTC ( [id://269067]=note: print w/replies, xml ) Need Help??


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

Too be fair, this is a problem with the *current* implementation of qr, and not the concept. Your two regexps are actually:
#UPDATE: While the previous verbose format was more # impressive, it was hideously long. See the # readmore for the literal strings. $qq = "[a]"x100; $qr = "(?-xism:[a]"x100 . ")"x100;
I think even a newbie could see that the latter is outrageously complicated...
$qq =<<EOqq; [a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][ +a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][ +a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][ +a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][a][ +a][a][a][a][a][a][a][a][a] EOqq $qr =<<EOqr; (?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-x +ism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism +:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a +](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](? +-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xi +sm:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism: +[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a] +(?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?- +xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xis +m:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[ +a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a]( +?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-x +ism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism +:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a +](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a]xism:[a](?-xi +sm:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism:[a](?-xism: +[a])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +))))))))))))))))))))))))))))))))))) EOqr

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

Replies are listed 'Best First'.
Re: /o is dead, long live qr//!
by Abigail-II (Bishop) on Jun 26, 2003 at 01:25 UTC
    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

      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.

      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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://269067]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2024-04-16 08:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found