in reply to /s and /m don't seem to be doing anything
Don't forget the basic debugging step of printing your things to check if they are what you think they are:
my $re1=qr/foo$/; my $re2=qr/foo$/m; my $re3=qr/foo$/s; $,="\t"; $\="\n"; # just for output print qr/$re1/, qr/$re1/m, qr/$re1/s; print qr/$re2/, qr/$re2/m, qr/$re2/s; print qr/$re3/, qr/$re3/m, qr/$re3/s; __END__ (?^:foo$) (?^:foo$) (?^:foo$) (?^m:foo$) (?^m:foo$) (?^m:foo$) (?^s:foo$) (?^s:foo$) (?^s:foo$)
So that means...
my $re1=qr/foo$/; print $re1, "\n"; print "foo\\nbar\\n =~ \/$re1\/ \t"; print "foo\nbar\n" =~ /$re1/ ?"true":"false"; print "\n"; print "foo\\nbar\\n =~ \/$re1\/m \t"; print "foo\nbar\n" =~ /$re1/m ?"true":"false"; print "\n"; my $re2=qr/foo$/m; print $re2, "\n"; print "foo\\nbar\\n =~ \/$re2\/ \t"; print "foo\nbar\n" =~ /$re2/ ?"true":"false"; print "\n"; print "foo\\nbar\\n =~ \/$re2\/m \t"; print "foo\nbar\n" =~ /$re2/m ?"true":"false"; print "\n"; __END__ (?^:foo$) foo\nbar\n =~ /(?^:foo$)/ false foo\nbar\n =~ /(?^:foo$)/m false (?^m:foo$) foo\nbar\n =~ /(?^m:foo$)/ true foo\nbar\n =~ /(?^m:foo$)/m true
(I haven't yet found the relevant bit of documentation that makes this behavior clear.)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: /s and /m don't seem to be doing anything
by Anonymous Monk on Dec 31, 2014 at 04:24 UTC | |
by Anonymous Monk on Dec 31, 2014 at 04:56 UTC | |
|
Re^2: /s and /m don't seem to be doing anything
by Anonymous Monk on Dec 31, 2014 at 04:25 UTC | |
by LanX (Saint) on Dec 31, 2014 at 04:54 UTC | |
by AnomalousMonk (Archbishop) on Dec 31, 2014 at 18:29 UTC |