http://www.perlmonks.org?node_id=968605

J0ax88 has asked for the wisdom of the Perl Monks concerning the following question:

I want to use a regular expression stored in an environment variable. I have this one-liner that works fine without using an environment variable:

perl -00 -ne 'print if /--Begin--/ && /--End--/' file.txt

file.txt contains:

Hello World --Begin-- Cat and Dog --End-- other stuff This is a test Good Bye

The above one-liner prints out what I want:

--Begin-- Cat and Dog --End--

Now I want to do the same thing except put the regular expression in an environment variable:

export REX="/--Begin--/ && /--End--/" echo $REX /--Begin--/ && /--End--/

So I tried doing this:

perl -00 -ne 'BEGIN {$rex = $ENV{REX}} print if qr($rex)' file.txt

and also this:

perl -00 -ne 'BEGIN {$rex = qr($ENV{REX})} print if $rex' file.txt

But it always prints out the whole file. Any help would be appreciated.