在我的代码中,我使用String :: Random
中的random_regex
函数创建一个类似于IP地址的字符串
$ip = random_regex('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}');
这是在循环内部,每当它到达此行时,Perl输出:
'\.' being treated as literal '.' at ./test_data.pl line 67
'\.' being treated as literal '.' at ./test_data.pl line 67
'\.' being treated as literal '.' at ./test_data.pl line 67
如何忽略或取消此警告?或者修改正则表达式以完全避免它?
答案 0 :(得分:4)
我无法理解random_regex
发出此警告的原因。为非单词字符发出它是没有意义的,更不用说.
。
此外,它没有提供禁用它的机制,所以你需要挂钩。
my $ip = do {
local $SIG{__WARN__} = sub {
return if $_[0] =~ /^'\\(\W)' being treated as literal '\1'/;
print(STDERR $_[0]);
};
random_regex('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
};