2011-02-27 82 views
7

我一直在嘗試使用Here-documents,但它不起作用。 什麼可能是錯誤的?我錯過了明顯的東西嗎?Perl在這裏 - 文檔不起作用

這是我試圖運行(有沒有空格,或製表符的任何地方)的文件的全部內容:

print<<EOF; 
text 
EOF 

我被它保存在記事本或筆記本運行它++作爲文件名爲3.pl
然後通過Windows 7的 和打字下進入DOS窗口:perl 3.pl 我得到這個消息:

無法找到字符串結束「EOF」 anyw這裏EOF在3.pl行1之前。

+0

你是如何試圖運行它? – 2011-02-27 23:08:04

+1

你是如何創建沒有換行符的文件?這弄亂了各種各樣的事情。 – tchrist 2011-02-28 10:38:40

回答

23

確保你的文件在最後有一個空行。這應該是四行:

print<<EOF; 
text 
EOF 
#or a comment here works too ;) 
+0

是的,現在工作 - 它只是需要一個空白的換行符。謝謝。爲什麼不能說perldoc? – Literat 2011-02-27 23:12:45

+10

[其實,它確實](http://perldoc.perl.org/perlop.html):'如果終止標識符在程序的最後一行,你必須確定它後面有一個換行符;否則,Perl會給出警告在EOF之前的任何地方找不到字符串終止符「END」。' – Konerak 2011-02-27 23:14:10

+0

哦好吧 - 只是看起來很埋,它確實應該在這裏:http://perldoc.perl.org/perlfaq4 .html#爲什麼不在我的這裏 - 文檔工作?爲什麼不 - 我的%3c%3cHERE-documents-work%3f部分。此外,在EOF ....之前的任何位置都找不到字符串終止符「END」,這只是一種愚蠢的說法,「我無法在文件末尾處理here-document」。使用診斷是沒有幫助的。有時候不得不討厭perl,但至少有這個地方可以彌補它。 – Literat 2011-02-27 23:18:42