1

random_regex在我的代码中,我使用String::Random中的函数创建了一个类似于 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

如何忽略或抑制此警告?或者也许修改正则表达式以完全避免它?

4

1 回答 1

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}')
};
于 2013-07-12T01:41:57.490 回答