下面的例子打印 「SAME」:爲什麼q/\ a/equal q/ a /?
if (q/\\a/ eq q/\a/) {
print "SAME\n";
}
else {
print "DIFFERENT\n";
}
我理解,這是與documentation一致。但我認爲這種行爲是不可取的。有沒有必要逃避反彈lilteral單引號字符串?如果我想要2個反斜槓,我需要指定4;這似乎並不方便。
Perl不應該檢測反斜槓是否用作轉義字符?例如,當反斜槓不在分隔符前面時,它應該被視爲文字;如果是這樣的話,我就不會需要3個反斜槓表示兩個,例如,
q<a\\b>
的
q<a\\\b>.
嘗試使用'q/\ /',你會看到需要避免反斜槓。 – cHao
對不起,我原來的問題並不完全清楚。我添加了「literal」這個詞來強調反斜槓不起轉義字符作用時的事實。你的例子並沒有像你的情況那樣反映我的觀點,根據定義,分隔符前面的反斜槓用作轉義字符。 – Ltf4an
「當反斜槓不在分隔符前面時,應該將其視爲文字」那麼如何創建以反斜槓結尾的字符串? 'q/\ /' - >文字斜槓,無結束分隔符(語法錯誤); 'q/\\ /' - >文字反斜槓,文字斜槓,無關閉分隔符(語法錯誤); 'q/\\\ /' - >文字反斜槓,文字反斜槓,文字斜線,無關閉分隔符(語法錯誤); ... – ThisSuitIsBlackNot