2010-06-11 57 views
3

我正在嘗試做一個簡單的教程,但我無法入門。我的問題似乎是安裝並獲取模塊的正確路徑。在簡單的Perl中爲模塊添加一個包含路徑教程

** 1。這裏是原代碼:*****

#!/usr/bin/perl -w 
use strict; 
use LWP 5.64; 

my $browser = LWP::UserAgent->new; 
my $url = 'http://www.cspan.org/RECENT.html'; 
my $response = $browser->get($url); 

die "Can't get $url -- ", $response->status_line 
    unless $response->is_success; 

my $html = $response->content; 
while($html =~m/<A HREF=\"(.*?)\"/g) { 
    print "$1\n"; 

2.但在主機的Gator他們這樣說:

你的Perl模塊(S)

路徑的位置:/家/ d ******** N/perl的

使用你的Perl模塊(S)

您將需要添加的/ home/d ******** N/Perl來了包括路徑。你可以通過添加如下代碼到腳本做到這一點:

BEGIN { 
    my $base_module_dir = (-d '/home/d********n/perl' ? '/home/d********n/perl' : (getpwuid($>))[7] . '/perl/'); 
    unshift @INC, map { $base_module_dir . $_ } @INC; 
} 

3,所以我添加的代碼,但不知道如果我在正確的位置添加它。

#!/usr/bin/perl -w 
use strict; 
use LWP 5.64; 

BEGIN { 
    my $base_module_dir = (-d '/home/d********n/perl' ? 

'/home/d********n/perl' : (getpwuid($>))[7] . '/perl/'); 
    unshift @INC, map { $base_module_dir . $_ } @INC; 
} 


my $browser = LWP::UserAgent->new; 
my $url = 'http://www.cspan.org/RECENT.html'; 
my $response = $browser->get($url); 

die "Can't get $url -- ", $response->status_line 
    unless $response->is_success; 

my $html = $response->content; 
while($html =~m/<A HREF=\"(.*?)\"/g) { 
    print "$1\n"; 

任何幫助將不勝感激。

僅供參考,我已經確信該文件具有所需的權限755

另外,LWP ::用戶代理在主機的Gator一些5.835。這是否意味着我必須改變

使用LWP 5.64;

使用LWP 5.835

+0

很高興見到你能得到這個貼。 – 2010-06-11 16:48:44

回答

3

假設你有安裝在您的本地模塊目錄LWP,把BEGIN您嘗試加載LWP(use strict後右側)。

原代碼的版本號表明它的最低版本。既然你有更新的版本,並且LWP的界面是穩定的,那麼簡單的use LWP;就足夠了。

+1

如果他正在修改別人的腳本,那5.64是有原因的。你能否至少提到它是你答案中的最低要求版本? – ysth 2010-06-11 17:17:52

+0

@ysth,你明白了,夥計。 – friedo 2010-06-11 17:21:55

+0

但是要回答他的問題,他不需要修改版本號。如果最初的教程說'使用LWP 5.64;#我們需要5.64或更高版本' – justintime 2010-06-11 18:27:36

2

解決方案Host Gator看起來有點複雜。如果運行在命令行腳本

use strict ; 
use lib '/home/d********n/perl' ; 
use LWP ; 

有兩種方法可以運行它不變:我會用lib模塊。

將其設置爲通過鍵入的環境變量在命令行下:

export PERL5LIB=/home/d********n/perl 
myscript.pl 

,或者添加爲一個選項的Perl commaind

perl -I/home/d********n/perl myscript.pl 
+0

謝謝,我嘗試了第一個選項,但它沒有工作: http://wildxtremes.com/cgi-bin/Tutorial14f.cgi 其他2個選項都高於我的頭。你能解釋他們將在代碼中的位置嗎? 再次感謝 – Dennis 2010-06-11 18:46:53

+0

此外,cgi-bin不在根目錄中,它位於另一個網站的子目錄中,是否可以更改包含路徑? – Dennis 2010-06-11 19:27:40

+0

你能否給我們詳細介紹一下「沒有工作」。如果從命令行運行,生成的錯誤消息是什麼。如果它是一個CGI腳本,則會被寫入服務器日誌。 – justintime 2010-06-11 20:09:07

相關問題