2013-08-20 149 views
0

這裏我想打印'$'標誌。怎麼做?

#!/perl/bin/perl 
    print <<EOF; 
    This sign $ is called dollar 
    It's a multiline 
    string 
    EOF 

這是給我的結果。

This sign is called dollar 
It's a multiline 
string 

我想打印$。

+1

你確定你沒有得到輸出'This sign called dollar'? – TLP

+0

可能是你說得對。但是現在我根本無法運行代碼。給我錯誤無法找到字符串終止符'EOF' –

回答

6

使用EOF相當於"EOF" - 這裏的文檔被插入,就好像在雙引號中一樣。反斜槓美元符號\$或明確使用單引號來抑制插值。

print << 'EOF'; 
... 
EOF 
+0

當我使用print <<'EOF'時,它給我錯誤,找不到字符串終止符'EOF' –

+0

不,現在它給了我那個錯誤,即使我不要使用$或引號。我很困惑! –

+0

@karate_kid不要將引號放在關閉的'EOF'周圍。就在第一個。 'print <<'EOF'.... EOF' – TLP

3

運行你的代碼use warnings打開給我:

Name "main::is" used only once: possible typo at foo.pl line 8. 
Use of uninitialized value $is in concatenation (.) or string at foo.pl line 8. 
This sign called dollar 
It's a multiline 
string 

正如你所看到的,is從句子了,所以是美元符號。警告告訴我爲什麼:在字符串內找到一個變量$is。由於它是空的,它被替換爲空字符串。因爲你沒有打開警告,所以這是靜靜地完成的。

道德是:始終使用use warnings。在這種情況下,還有一個好處是use strict,因爲由於未聲明的變量$is而導致腳本無法編譯。

至於如何解決它,我相信choroba有解決方案his answer

相關問題