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


in reply to grep {CONSTANT} @list

The way I see it, you still need to put // around the pattern you are trying to match that is contained in REGEX (in this case it is (?^:string)).

say grep { REGEX } @list; #doesn't work, because it isn't really doing what you think it is doin +g say grep { /REGEX/ } @list; #doesn't work because of the problems mentioned above when using const +ants in contexts that auto-quote barewords say grep { /(?^:string)/ } @list; #this works (and throws errors if // are removed) use Readonly; Readonly::Scalar my $regex_ro => qr/string/; say grep {/$regex_ro/} @list; #this works (and, as expected, gives same bad result you got if // is +removed) my $regex = qr/string/; say grep { /$regex/ } @list; #this works (and, as expected, gives same bad result you got if // is +removed)