Reputation: 79
I'm trying to do a simple tutorial but I'm having trouble getting started. My problem seems to be installing and getting the correct path to the modules.
**1. Here is the original code:*****
#!/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. But in Host Gator they say this:
Location of Your Perl Module(s)
Path: /home/d********n/perl
Using Your Perl Module(s)
You will need to add /home/d********n/perl to the include path. You can do this by adding the following code to your script:
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. So I added the code but have no idea if I added it in the correct spot.
#!/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";
Any help would be greatly appreciated.
FYI, I already made sure the file has the needed permissions 755
Also the LWP::UserAgent has a number of 5.835 in Host Gator. Does that mean I have to change
use LWP 5.64;
to
use LWP 5.835
Upvotes: 4
Views: 2339
Reputation: 1711
Or directly on the command line using perl option parameter flag -I for eg. multiple directories/projects also with a general module
perl -I'../project/lib' -I'../otherProject/lib' -I'lib' -M'Test::Doctest' -e run lib/MyOwnModule.pm
Upvotes: 0
Reputation: 3631
The solution Host Gator seems a bit complicated. I would use the lib module :
use strict ;
use lib '/home/d********n/perl' ;
use LWP ;
If you are running the script from a command line there are two ways you can run it unchanged.
Set it as an environment variable by typing following at command line :
export PERL5LIB=/home/d********n/perl
myscript.pl
or add it as an option to the perl commaind
perl -I/home/d********n/perl myscript.pl
Upvotes: 2
Reputation: 66937
Assuming you've got LWP installed in your local module directory, put the BEGIN
block before you try to load LWP (right after use strict
).
The version number in the original code indicates that it's the minimum required version. Since you've got a newer version and LWP's interface is stable, a simple use LWP;
will suffice.
Upvotes: 3