我正在尝试使用此
匹配不同行上的模式my $line = <>;
if($line =~ /hello\nthere/m){
say "matched";
}
else{
say "no match";
}
但是,当我使用包含此文本的文件运行程序时,它并不匹配。
hello
there
我也尝试过使用点运算符(。)和/ s修饰符。任何帮助,将不胜感激。感谢。
答案 0 :(得分:4)
<>
只读取一行输入,除非您清除$/
变量。
my $all_lines = do { local $/; <> };
然后,你可以匹配
$all_lines =~ /hello\nthere/;
不需要/m
,因为它会更改^
和$
的含义,正则表达式中没有这些含义。