检测正则表达式匹配中标量的精确字符串值

Set*_*nig 1 regex perl

说我有 $foo = "bar.baz"

我想使用标量$ foo来查找包含"bar.baz"(字符串中的任何位置)的字符串,但不是$ foo的正则表达式计算版本.

因此,行:if( $other =~ m/$foo/ ) ... 不起作用,因为$ foo正在被评估为'.' 被评估为任何角色.我怎么阻止它?

gee*_*aur 10

选一个:

  1. $foo = quotemeta("bar.baz");
  2. if ($other =~ m/\Q$foo/)

(两者实际上都是一样的,只是在不同的时间完成.)