你的代碼看起來像你想要一個CGI程序。 CGI意味着你通過網絡瀏覽器調用你的程序並返回一個網站。雖然vstm的評論當然適用於非cgi程序,但您的示例需要更多的東西才能實現這一目標。
您將需要安裝Web服務器。看看xampp。安裝和維護起來很簡單,並且附帶了一個mysql以及一個apache安裝。我推薦lite版本,因爲它沒有全部的開銷。
一旦你安裝了它,你需要進行一些配置,以便它可以運行你的perl腳本。我認爲你已經安裝了Active Perl。然後你需要調整Apache配置。
在
c:\xampp\apache\conf\httpd.conf
你需要找到一個說
<Directory "C:/xampp/htdocs">
線並閱讀註釋(標有#
)。您必須在<Directory>
部分中添加ExecCGI
。爲每個你想要perl腳本運行的目錄做到這一點。然後尋找一條線,說
AddHandler cgi-script .cgi .pl .asp
並確保它沒有被註釋掉。
一旦你做了,把你的程序在c:\xampp\htdocs
文件夾(cgi-bin
也應該工作),並改變shebang-line(與#!
的第一行)到你已經安裝了活動的Perl,例如C:\perl\bin\perl.exe
。它告訴apache它應該使用什麼程序來執行perl腳本。
此外,一些行添加到您的代碼:
#!C:\perl\bin\perl.exe
use strict;
use warnings;
use CGI;
use CGI::Carp('fatalsToBrowser');
print "Content-type: text/html \n\n";
print "Hello World.\n";
現在你需要運行的Apache Web服務器。在xampp安裝目錄中有幾個控制apache和mysql的批處理文件。還有一個xampp-control.exe
。運行。在新窗口中,單擊Apache旁邊的開始按鈕。
在您的瀏覽器中,轉至http://localhost/<yourscript.pl>
。現在應該說「Hello World!」。
如果沒有,請確保您沒有運行Skype。它會阻止Apache嘗試運行的端口80。你需要將apache的端口改爲別的。請參閱this video。
在我做的代碼和他們做了什麼變化的幾句話:
use strict;
應該總是在你的代碼。它迫使你遵守某些準則並編寫更好的代碼。這在Hello World程序中可能看起來很奇怪,但請仍然使用它。
use warnings;
告訴你可能出錯的事情。警告不是錯誤,而是perl對你可能不認識的東西有幫助。用它。
use CGI
使程序的輸出轉到網絡服務器。您在使用CGI程序時需要這些。
print "Content-type: text/html \n\n";
是需要的,因此瀏覽器知道該期待什麼。在這種情況下,一個HTML網站。它被稱爲HTTP-標題幷包含一個MIME類型。
use CGI::Carp('fatalsToBrowser');
使錯誤進入瀏覽器。沒有它,除非你查看Apache的錯誤日誌,否則你永遠不會知道它們。
那麼第一個鏈接是正確的方式來做它在Windows上。唯一的區別是Windows Vista/7在開始菜單中沒有「運行」條目。所以你必須使用開始菜單中的搜索框並輸入「cmd.exe」,然後按回車鍵執行。這樣你就可以啓動一個cmd提示符,你可以在其中執行perl-command。 - 編輯:執行perl腳本類型'perl nameofyourfile.ext'(你必須在正確的目錄中)。 – vstm
/usr/bin/perl也不會成爲Windows系統上Perl解釋器的正確路徑。另外,如果您通過Web服務器進行調用,則需要確保服務器已配置爲正確運行Perl腳本。通常它需要一個.cgi或.pl擴展名。 – Ilion
嗯......你**已經安裝了Perl([DWIMPerl](http://dwimperl.com/),[Strawberry Perl](http://strawberryperl.com/)或[ActivePerl](http ://www.activestate.com/activeperl)),對嗎? – 2012-06-07 15:26:24