繁体   English   中英

在简单的 Perl 教程中为模块添加包含路径

[英]Adding an Include Path for a Module in a Simple Perl Tutorial

我正在尝试做一个简单的教程,但我在开始时遇到了麻烦。 我的问题似乎是安装和获取模块的正确路径。

**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

假设您已在本地模块目录中安装了LWP,请尝试加载LWP 之前放置BEGIN块(在use strict )。

原始代码中的版本号表示它是所需的最低版本。 由于你有一个更新的版本和LWP的界面是稳定的,一个简单的use LWP; 就足够了。

解决方案Host Gator似乎有点复杂。 我会使用lib模块:

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

如果从命令行运行脚本,则有两种方法可以不加改变地运行它。

通过在命令行键入以下内容将其设置为环境变量:

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

或者将其添加为perl commaind的选项

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

或者直接在命令行上使用 perl 选项参数标志 -I 例如。 多个目录/项目也有一个通用模块

perl -I'../project/lib' -I'../otherProject/lib' -I'lib' -M'Test::Doctest'  -e run lib/MyOwnModule.pm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM