While working on my patch to Module::Install, I happened to do another cpanoutdated | cpanm -v for my shiny new Perl 5.20.1 build. This pulled in Test::More, with another one of those file path interpolation into regex pattern problems:
Here are the relevant parts:
Unrecognized escape \M passed through in regex; marked by <-- HERE in m/The new sub is 'MyModernTester::__ANON__' defined in t\Behavior\M <-- HERE onkeyPatching_diag.t
Got:
The new sub is 'MyModernTester::__ANON__' defined in t\Behavior\MonkeyPatching_diag.t around line 19.
Expected:
(?^:The new sub is 'MyModernTester::__ANON__' defined in t\Behavior\MonkeyPatching_diag.t around line 19)
This is not the only instance of this type of test failure.
Please, please, use quotemeta.
Here is the pull request. It consists solely of replacing qr{ … $file … }
with qr{ … \Q$file\E … }
.