in reply to Is there any way to put regex modifiers into a variable?

You can do it slightly differently by putting the regex modifier(s) inside the regex:

use strict; use warnings; my $opts = "io"; my $regex = "test"; while (<DATA>) { my $line = $_; print $line if $line =~ /(?$opts)\Q$regex\E/; } __DATA__ untested unknown

Note that this reveals a slight problem - I can't find your 'o' modifier in the docs. Note also that I have wrapped the regex itself in \Q\E to prevent problems if it contains metacharacters.

Regards,

John Davies

Replies are listed 'Best First'.
Re^2: Is there any way to put regex modifiers into a variable?
by hilitai (Monk) on Mar 11, 2018 at 20:23 UTC

    Yes! Thank you! That is the slap upside the head that I needed.

    With regards to the /o modifier, see the Perlop man page, Regexp Quote-Like Operators.

      the /o modifier

      Although I'm having trouble finding it at the moment, I think there was some recent discussion that /o is often not what you want. All I found so far is /o is dead, long live qr//!, although that's not recent. There's the FAQ What is /o really for?. You could perhaps look into qr//.