in reply to Store regular expressions in a file.

this 'data' is a regular expression

No, it is not a regular expression, only the duck is a regular expression. s is a Perl operator. If you can it would be a lot easier to have two columns, the first being the RE pattern ('duck') and the second being the replacement text ('luck') and then read them into variables (using split) - it is perfectly valid (and common) to store an RE in a Perl variable.

Otherwise you will be reduced to doing nasty things like eval, and you don't want to go there.

Replies are listed 'Best First'.
Re^2: Store regular expressions in a file.
by yoda54 (Monk) on Nov 11, 2010 at 11:22 UTC
    So something like this? I don't get any output.

    Thanks

    #!/usr/bin/perl use strict; use warnings; my $data = "duck"; my $r; while(<DATA>) { chomp; my ($x, $y) = split(/\s/, $_); $r->{$x} = qr/$y/; if ($data =~ $r->{"duck"}) { print "$data\n"; } } __DATA__ duck s/duck/luck/