Combining this with LanX's comment about metachars gives enlightenment:
my $re1=qr/foo$/; my $re2=qr/foo$/m; $,="\t"; $\="\n"; # just for output print tf(qr/$re1/), tf(qr/$re1/m); print tf(qr/$re1$/), tf(qr/$re1$/m); print tf(qr/$re2/), tf(qr/$re2/m); print tf(qr/$re2$/), tf(qr/$re2$/m); sub tf { "$_[0] ".("foo\nbar\n"=~$_[0]?"T":"F") } __END__ (?^:foo$) F (?^:foo$) F (?^:(?^:foo$)$) F (?^m:(?^:foo$)$) F (?^m:foo$) T (?^m:foo$) T (?^:(?^m:foo$)$) F (?^m:(?^m:foo$)$) T
i.e. the modifiers need to be on the regex which contains the metacharacters which they affect. Makes sense but I didn't catch it right away.
perlop says this:
If a precompiled pattern is embedded in a larger pattern then the effect of "msixpluad" will be propagated appropriately.
It's possible I've missed some other documentation, but I find this statement possibly a bit misleading, since "appropriately" could be taken to mean that, for example, qr/$re1/m should propagate /m into $re1, as the OP expected.
In reply to Re^2: /s and /m don't seem to be doing anything
by Anonymous Monk
in thread /s and /m don't seem to be doing anything
by sciguy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |