Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Answer: Using CODEconstant/CODEs in regexes?

by abstracts (Hermit)
on Aug 11, 2001 at 02:52 UTC ( #104064=categorized answer: print w/replies, xml ) Need Help??

Q&A > regular expressions > Using constants in regexes? - Answer contributed by abstracts

Use the (?{ CODE }) experimental feature at your own risk:
use constant TEST => 'def'; my $string = 'abcdefg'; if ($string =~ /(?{TEST})/) { print "The string contains the constant.\n"; }else{ print "The string doesn't contain the constant.\n"; }


Replies are listed 'Best First'.
Re: Answer: Using CODEconstant/CODEs in regexes?
by japhy (Canon) on Aug 11, 2001 at 03:11 UTC
    Err, I think you were thinking of (??{ ... }). That's overkill, in my opinion. Your approach doesn't work, since (?{ ... }) merely executes code, it doesn't use it as part of the regex.

    Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
    s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

      You are absolutely right: it was $$ not $. And yes it is an overkill, but it works. I just couldn't remember the syntax of @{[...]}.

      Thanks for the correction


Log In?

What's my password?
Create A New User
[TCLion]: Good Morning Monks, I am parsing logs and some date time formats are inconsistent. I am trying to make output all same format. What is the best way to convert a month(word) to month(number)?
[Corion]: TCLion: I'm not aware of a better way than manually building the hash, as all strptime incarnations I know have nasty edge cases
[davido]: And remember; time is hard. :) As soon as you think, I've got this, you'll discover that time is harder than that. :)
[1nickt]: TCLion are you parsing the dates with DateTime or another tool?
[1nickt]: I note DateTime::Format:: Flexible, announced immediately below this box in the CPAN feed

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (11)
As of 2017-03-23 14:42 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (287 votes). Check out past polls.