2013-10-30 24 views
2
my $cmd = 'this is a "testin$g" ok'; 
print Dumper($cmd); 

$ VAR1 ='這是一個'testin $ g「ok';

my $cmd = 'this is a "testin$g" ok'; 
$cmd =~ s/\$/\\\$/; 
print Dumper($cmd); 

$ VAR1 ='這是一個'testin \\ $ g「ok';

我想結束一個看起來像這樣的字符串:'這是一個'testin \ $ g「ok」。 單個\在$前面。但即使我將$替換爲$,它最終會以兩個結尾。

回答

6

你的正則表達式和字符串都是正確的。 Data :: Dumper會轉義字符本身。

要打印一個簡單的字符串只使用

print $cmd."\n"; 

,你會看到它的確定。

而且,試試這個,看看如何自卸車逃脫字符

print Dumper('this is a "testin\$g" ok'); 
+0

感謝

this is a "testin\$g" ok 

被分配到$VAR1,卻沒有意識到,翻斗車逃逸了它。 – Takkun

1

你的替代是正確的。如果執行以下操作,則會看到$cmd僅包含一個反斜槓。

print("$cmd\n"); # this is a "testin\$g" ok 

Data :: Dumper打印一個字符串文字,該文字在執行時會在結構中創建字符串。

$VAR1 = 'this is a "testin\\$g" ok'; 

表示變量傾倒含有

this is a "testin\$g" ok 

,因爲當你執行

$VAR1 = 'this is a "testin\\$g" ok'; 
相關問題