5.2.1 模式修饰词
/i 修饰词是说同时匹配大写或者小写(以及在 Unicode 里的标题)
/s 和 /m 修饰词并不涉及任何古怪的东西。它们只是影响 Perl 对待那些包含换行符的匹配的态度。
元字符 "." 匹配除了换行符以外的任何单个字符,因为它的传统含义是匹配一行内的某个字符。
不过带有/s时,"." 元字符也可以匹配一个换行符,因为已经告诉Perl 忽略该字符串可能包含的多个换行符的情况
Vsftp:/root/perl/2# cat a4.pl
my $var=" my
aa
bb";
if ($var =~ /.*my.*aa.*bb/){print "11111111\n"};
Vsftp:/root/perl/2# perl a4.pl
Vsftp:/root/perl/2#
Vsftp:/root/perl/2# cat a4.pl
my $var=" my
aa
bb";
if ($var =~ /.*my.*aa.*bb/s){print "11111111\n"};
Vsftp:/root/perl/2# perl a4.pl
11111111
/m 修饰符
先说锚定符,如果在单行模式 /s 下使用^或$来表示匹配开始或末尾的话,那么^,$将匹配的是字符串的开头和末尾,
而并不是以‘\n’为概念的行的开头和末尾,如果想匹配‘\n’为概念的行的开头和末尾,则要与多行模式混合 /m 使用,即 m/你的模式/sm,但是这还取决于另一个元字符——'.'。
/m 令 ^ 和 $ 匹配随后嵌入的 \n。 当作多行处理
Vsftp:/root/perl/2# cat a4.pl
my $var="my
aa
bb";
if ($var =~ /^my\n^aa\nbb$/){print "11111111\n"};
Vsftp:/root/perl/2# perl a4.pl
Vsftp:/root/perl/2#
Vsftp:/root/perl/2# cat a4.pl
my $var="my
aa
bb";
if ($var =~ /^my\n^aa\nbb$/m){print "11111111\n"};
Vsftp:/root/perl/2# perl a4.pl
11111111