2010-10-03 133 views
2

我正在嘗試搜索並用變量替換。在這種情況下,我從前一場比賽中拉出的變量。這裏是我的代碼:如何在正則表達式中使用Perl變量?

$fileContentToAlter =~ s/$2/$1/g; 

現在我在這種狀態下實現的,它被錯誤地解讀爲$有一個正則表達式的內部它本身的意義。我在網上做了一些搜索,然後閱讀雙引號可以解決這個問題,因爲它會內插,但這看起來並不適合我。我不會說謊,這是一項家庭作業,所以我不期待一個單一的答案。只是在正確的方向推動。

+0

捕獲變量是多餘的,完全可以避免的:'我的($此,即$)= $ match_me =〜/(capture_this)(capture_that)/;' – daxim 2010-10-03 08:45:48

+0

不錯,我甚至沒有想到這一點。我不得不將自己的頭圍繞perl,因爲它與我以前處理的不同。但我真的很喜歡它。 – Pinsickle 2010-10-08 03:57:45

回答

5

避免'$ 1'和'$ 2',因爲它們是正則表達式元字符。

use strict; 
use warnings; 

my $val1 = "abc"; 
my $val2 = "def"; 
while (<>) 
{ 
    s/$val1/$val2/g; 
    print; 
} 
+0

感謝您的幫助。我開始懷疑我是否應該創建一個變量來分配我的$ 1和$ 2結果。 – Pinsickle 2010-10-03 02:04:54