Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Hash of Regex

by nvivek (Vicar)
on Apr 07, 2010 at 05:13 UTC ( #833187=note: print w/replies, xml ) Need Help??


in reply to Hash of Regex

When you want use those as regular expression pattern for substitute command,there is no need to give match(//) operator to match those pattern.Because,you want to replace get the pattern from hash key and put it in the substitute command.For this,you can try the following script.
my $test = 'The brown fox int(10) over float(200) fence.'; my %dict = ( 'brown' => 'yellow', 'int\(\d+\)' => 'int', 'float\(\d+\)' => 'float', ); for my $i (keys %dict) { $test =~ s/($i)/$dict{$i}/gi; } print $test;
For better understanding,you can print the internal structure of hash by using Dumper function. You need to escape the () parentheses,because it is used for grouping in substitute command.

Replies are listed 'Best First'.
Re^2: Hash of Regex
by Anonymous Monk on Apr 07, 2010 at 18:49 UTC
    Or to state nvivek's point another way:

    /int\(\d+\)/ is not a regular expression

    It is the match operator //

    with a regular expression int\(\d+\)

    After all, you wouldn't write

    $test =~ s//int\(\d+\)//int/gi;
    would you?

    --Greg

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://833187]
help
Chatterbox?
[choroba]: It's been reported before
[Discipulus]: ok no big deal anyway..
[Discipulus]: mmh choroba.. my post is not for you, if you do not want your golfing game somehow spoilered for one of the problems. Adviced! ;=)
[Discipulus]: no that i aim to victory anyway..

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2017-10-22 19:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My fridge is mostly full of:

















    Results (275 votes). Check out past polls.

    Notices?