Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^5: Tokenizing and qr// <=> /g interplay

by japhy (Canon)
on Apr 25, 2005 at 12:36 UTC ( [id://451160]=note: print w/replies, xml ) Need Help??

in reply to Re^4: Tokenizing and qr// <=> /g interplay
in thread Tokenizing and qr// <=> /g interplay

I can answers your first question by answering your second one. If you made all the first elements of your array references Regexp objects:
$_->[0] = qr/\b(\Q$_->[0]\E)b/ for @corrections_to_make;
then you could do your loop as
for my $crummy_good_ar (@corrections_to_make) { my ($crummy, $good) = @$crummy_good_ar; $file_in_string_form =~ s/$crummy/$good/ig; }
This way, even if you end up looping over THAT code, you'd still be dealing with already-compiled regexes. As soon as you put additional text into a regex with qr// in it:
my $rx = qr/abc/; if ($str =~ /^($rx)$/) { ... }
Perl has to do the "compare physical regex forms" test. Only if the qr// object is all alone will it have the entire benefits it was made for.

Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart

Replies are listed 'Best First'.
Re^6: Tokenizing and qr// <=> /g interplay
by ff (Hermit) on Apr 25, 2005 at 13:37 UTC
    Okay, so an array of [ qr, $good ] combos could help me if my example was something like:

    for my $file_in_string_form ( @all_files ) { for my $crummy_good_ar (@corrections_to_make) { my ($crummy, $good) = @$crummy_good_ar; $file_in_string_form =~ s/$crummy/$good/ig; } }
    And in the meantime, if I have no additional files to process, I might as well compile the regexen as needed?

    Thanks! I think I understand now. :-)

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-06-15 22:25 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.