2012-06-20 56 views
9

我試圖用調試幾個正則表達式:調試Perl的正則表達式

perl -Mre=debug file.pl 

的file.pl腳本有許多正則表達式。其中一些重複。使用上面的語法,正在調試file.pl中的所有正則表達式。

有沒有辦法讓Perl調試腳本中的特定正則表達式?

我熟悉YAPE :: Regex模塊,但這不是我所需要的。所以請不要使用它。

+1

爲什麼不註釋掉其他正則表達式,或者只運行在命令行上特定的正則表達式,通過'perl的-e'? –

+0

腳本非常複雜(12000 LOC)。如果我將註釋掉任何正則表達式然後執行將失敗..如果我提供虛擬值,那麼它會給出意想不到的結果:( – AnonGeek

回答

11

與許多其他編譯指示一樣,您可以使用no取消以前的use

use re 'debug'; 

$str=~/\d{3}/; 

no re 'debug'; 

$str=~/\d{3}/; 
6

作爲5.9.5指令重新使用「調試」和其等價物詞法作用域,作爲其他指令是。

用途:

{ 
    use re 'debug'; 
    # Debugged regexp here. 
} 
+0

這也支持在5.8.8?我把它放在一個條件下,但它是 – AnonGeek

+1

不可以,自5.9.5版本開始在5.8.8中,您需要使用'no'語句。 –