2013-07-11 10 views
1

在我的代碼使這有點兒類似於一個IP地址,使用從字符串::隨機如何抑制關於反斜槓字符被視爲文字字符的警告?

$ip = random_regex('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'); 

這是一個循環的內部和random_regex函數的字符串時,它打這一行,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 

如何忽略或壓制此警告?或者可能修改正則表達式以完全避免它?

+3

也許'qr'?更多的上下文會有幫助 – toolic

+0

使用雙引號的FWIW使它遠離我。 Ubuntu 12.10上的Perl 5.14.2 –

回答

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}') 
}; 
+0

你在RT的報告缺少... –