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

标签 perl module include-path

我正在尝试做一个简单的教程,但我无法开始。我的问题似乎是安装并获取模块的正确路径。

**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,请将 BEGIN在尝试加载 LWP 之前阻止(就在 use strict 之后)。

原始代码中的版本号表示它是最低要求的版本。由于您的版本较新且 LWP 的界面稳定,所以一个简单的 use LWP;就足够了。

关于perl - 在简单的 Perl 教程中为模块添加包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024573/

相关文章:

c++ - visual studio 2010 包含文件可以是 'see' 但无法编译

c++ - Visual Studio 2010,PortAudio DLL 编译和链接问题,C++

perl - 在 perl 中添加哈希时遇到问题

perl - 节省内存和编译时间

Python 等价于 Perl 的习语 do this or that,通常称为 "or die"?

angular - npm package.json 未记录的 key

module - Lua 全局变量包含当前文件的路径?

java - 使用 Java 传递给 Perl 脚本的参数的问题

javascript - 未找到导出默认值

python - 此模板中正确的包含路径是什么?