2010-03-24 120 views
2

我已經寫了下面的index.pl這是C:\xampp\htdocs\perl文件夾:爲什麼我的Perl CGI程序不能在Windows上工作?

#!/usr/bin/perl 
print "<html>"; 
print "<h2>PERL IT!</h2>"; 
print "this is some text that should get displyed in browser"; 
print "</html>"; 

當我瀏覽到http://localhost:88/perl/上述HTML不會被顯示出來(我已經在IE FF和鉻試過)。

會是什麼原因?

我在此Windows XP系統上安裝了xamppapache2.2

回答

2

也許是因爲您沒有在<body>標籤之間放置文字。您還必須指定內容類型爲text/html

試試這個:

print "Content-type: text/html\n\n"; 
print "<html>"; 
print "<h2>PERL IT!</h2>"; 
print "<body>"; 
print "this is some text that should get displyed in browser"; 
print "</body>"; 
print "</html>"; 

而且,從鏈接RICS了,

Perl: 
Executable: \xampp\htdocs and \xampp\cgi-bin 
Allowed endings: .pl 

所以你應該要訪問你的腳本,如: http://localhost/cgi-bin/index.pl

+0

@ccheneson:謝謝!! ..因爲內容類型 – dexter 2010-03-24 09:05:22

+0

很酷,那麼如果它有效,我會刪除我對該端口的評論。 – ccheneson 2010-03-24 09:09:19

+0

您編輯的代碼如何使用它? 的Perl: 可執行文件:\ XAMPP \ htdocs中和\ XAMPP \ cgi-bin目錄 允許的結尾:特等 – dexter 2010-03-24 10:36:03

0

我只是猜測。

  • 您是否已啓動apache服務器?
  • 88正確的端口是否到達您的apache

您也可以嘗試http://localhost:88/perl/index.pl(因此將腳本名稱添加到正確的地址)。

檢查this documentation尋求幫助。

+0

@ rics感謝回覆, 當我運行這個時,apache已啓動(啓動),同時88也是正確的端口原因我在php中創建的其他項目工作正常 – dexter 2010-03-24 09:01:02

+0

@ rics請不要猜測。 – 2010-03-24 11:06:08

4

參見How do I troubleshoot my Perl CGI Script?

你的問題是由於你的腳本沒有發送適當的頭文件。

有效的HTTP response由兩部分組成:頭部和正文。

您應該確保使用正確的CGI處理模塊。 CGI.pm事實上的標準。然而,它有很多歷史包袱,並提供了一個更清潔的替代方案。

使用這些模塊之一,你的腳本會一直:

#!/usr/bin/perl 
use strict; use warnings; 
use CGI::Simple; 

my $cgi = CGI::Simple->new; 

print $cgi->header, <<HTML; 
<!DOCTYPE HTML> 
<html> 
<head><title>Test</title></head> 
<body> 
<h1>Perl CGI Script</h1> 
<p>this is some text that should get displyed in browser</p> 
</body> 
</html> 
HTML 

記住print有多個參數沒有問題。沒有理由去學習1999年的編程。

相關問題