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

Re^4: Putting the stringified Regexp object into code

by sedusedan (Monk)
on Nov 06, 2012 at 19:16 UTC ( #1002566=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Putting the stringified Regexp object into code
in thread Putting the stringified Regexp object into code

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.


Comment on Re^4: Putting the stringified Regexp object into code
Download Code
Re^5: Putting the stringified Regexp object into code
by kennethk (Monsignor) on Nov 06, 2012 at 20:56 UTC
    No, it's not necessary -- I said the qr was unnecessary, not qr//.
    #!/usr/bin/perl use strict; use warnings; my $re = qr(/); $re =~ s!/!\\/!g; my $code = "if (\$data =~ /$re/) { blah() }"; my $data = '/'; eval $code; sub blah { print "hi" }

    I understand that you are auto-generating code; perhaps roboticus's response in Re^3: Putting the stringified Regexp object into code will make my point more clearly. There are times when string evaluated code is appropriate, but this would not be a time I'd select it.


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

      Ah, sorry. You're right of course. I have removed the "qr".

      Also see my response to roboticus. Point taken, but I do want to generate string code in this case. eval()-ing the string is just one, not the only thing, I want to do with the it.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (18)
As of 2014-04-17 13:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (448 votes), past polls