Your problem here is that you're actually using two regexes. Interpolating these separately works fine:
ken@ganymede: ~/tmp $ cat pm_re2_file.txt Hello World --Begin-- Cat and Dog --End-- other stuff This is a test Good Bye ken@ganymede: ~/tmp $ RE1="--Begin--" RE2="--End--" perl -00 -ne 'print if /$ENV{RE1}/ && +/$ENV{RE2}/' pm_re2_file.txt --Begin-- Cat and Dog --End-- ken@ganymede: ~/tmp $
If you have a specific requirement to use just one environment variable, I'd suggest using eval:
ken@ganymede: ~/tmp $ RE1="/--Begin--/ && /--End--/" perl -00 -ne 'print if eval $ENV{RE1} +' pm_re2_file.txt --Begin-- Cat and Dog --End-- ken@ganymede: ~/tmp $
-- Ken
In reply to Re: Using a regex saved in an environment variable
by kcott
in thread Using a regex saved in an environment variable
by J0ax88
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |