4

簡単なチュートリアルをやろうとしていますが、始めるのに問題があります。私の問題は、モジュールへの正しいパスをインストールして取得しているようです。

**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. しかし Host Gator では、次のように述べています。

Perl モジュールの場所

パス: /home/d********n/perl

Perl モジュールの使用

/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::UserAgent の Host Gator の番号は 5.835 です。それは私が変わらなければならないということですか

LWP 5.64 を使用します。

LWP 5.835 を使用

4

3 に答える 3

3

LWP がローカル モジュール ディレクトリにインストールされていると仮定すると、 LWP をロードしようとする(の直後) にBEGINブロックを配置します。use strict

元のコードのバージョン番号は、それが最低限必要なバージョンであることを示しています。あなたが持っているのは新しいバージョンで、LWP のインターフェースは安定しているので、単純なものでuse LWP;十分です。

于 2010-06-11T16:45:26.843 に答える
2

ソリューション Host Gator は少し複雑に思えます。libモジュールを使用します:

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

コマンド ラインからスクリプトを実行している場合は、変更せずに実行する方法が 2 つあります。

コマンドラインで次のように入力して、環境変数として設定します。

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

または、perl コマンドのオプションとして追加します

perl -I/home/d********n/perl myscript.pl
于 2010-06-11T18:24:34.287 に答える