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

Re: Putting the stringified Regexp object into code

by kennethk (Monsignor)
on Nov 06, 2012 at 18:40 UTC ( #1002557=note: print w/ replies, xml ) Need Help??


in reply to Putting the stringified Regexp object into code

Is there a reason you are avoiding using a closure? Doing something like

my $re = qr(/); my $code = sub {if ($_[0] =~ $re) { blah() }}; ... $code->($data);
will probably save you some maintenance headache and keeps errors more localized to where they were coded. There is nothing wrong per se with what you've done, but it doesn't take advantage of a lot of the strengths modern Perl has to offer. In my own work, I have found that a string eval correlates strongly with me being too clever for my own good.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


Comment on Re: Putting the stringified Regexp object into code
Download Code
Re^2: Putting the stringified Regexp object into code
by sedusedan (Monk) on Nov 06, 2012 at 18:59 UTC
    Yup, I am specifically generating Perl code (as string). The resulting code can be eval()-ed or embedded in other source code.

      How are you embedding? This sounds like something you should be solving using modules if you need to share the result among multiple scripts. But as I said, the code should stand as is. I would point out that the qr in $code = "if (\$data =~ qr/$re/) { blah() }"; is unnecessary.


      #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

        Please see my reply to Anomalous. I am generating a Perl code in a string, where $re will become literal in the generated code. The qr// can be replaced with m//, but it's rather necessary.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (11)
As of 2014-12-22 21:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (130 votes), past polls