Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: fastest pattern match

by neilwatson (Curate)
on Jun 24, 2002 at 19:35 UTC ( #176912=note: print w/ replies, xml ) Need Help??


in reply to fastest pattern match

Read the file one line at a time. When you hit your match exit:

open( FILE, "file" ) || die ("The file not there "); while (<>){ if (m/$regex/) { print "matched!\n"; close (FILE); exit; } }

Neil Watson
watson-wilson.ca


Comment on Re: fastest pattern match
Download Code
Re^2: fastest pattern match
by flounder99 (Friar) on Jun 24, 2002 at 19:50 UTC
    You should use m/$regex/o or the regex will be compiled every iteration, slowing things down considerably

    --

    flounder

      Good advice in general,
      but in this case there'll only be one interation.

      Update: Fastolfe's right...my bad...mea culpa

      ~monk d4vis
      #!/usr/bin/fnord

        Why? If we were sure the match would always occur on the first line, why search for it at all?
      Incorrect. It will not be compiled on every iteration, but its string form will be compared with its previous string form, to see whether it needs recompiling.

      _____________________________________________________
      Jeff[japhy]Pinyan: Perl, regex, and perl hacker, who'd like a job (NYC-area)
      s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

        Thanks,

        I remember reading that it still did the recompile even if the variable in the regex did not change. Of course I read that a LONG time ago. Apparently it has been fixed.(probably a long time ago) So would the /o faster by avoiding the extra string compare? I know this would probably be insignificant unless there where a bajillion iterations. But I was just curious.
        Do you even know anything about regexes? (see sig)

        --

        flounder

        Do you even know anything about perl?
        --Anonymous Coward to Tom Christiansen on slashdot

      That's JAN-AR-IK..(like generic) Just another Regexp Question.

      Also it might be worth mentioning that meta characters in $regex will still be parsed. Make sure you intended that to happen.

      --

      Brother Frankus.

      ¤

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (11)
As of 2014-09-18 18:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (120 votes), past polls