我正试图在后面使用负数来过滤掉一些字符串的匹配项。奇怪的是,如果我使用字符串“ STDIN”,那么代码实际上是在尝试使用句柄。
示例:
perl -e 'use strict; print "/some/file/path/STDIN.json" =~ m/(?<!STDIN\.)json$/i;'
投掷:
Variable length lookbehind not implemented in regex m/(?<!STDIN\.)json$/ at -e line 1.
但是,如果我摆脱了'STDIN'的前导'S',翻译将不会像预期的那样抱怨。
perl -e 'use strict; print "/some/file/path/STDIN.json" =~ m/(?<!TDIN\.)json$/i;'
口译员没有抱怨。
是否有一些特殊的方法可以逃脱“ STDIN”?还是我缺少一些简单的东西?
作为参考,我正在使用perl 5.22.2