finding modules via @INC

S

sysdrk

I'm trying to use an XML pretty printer called xmlpretty on UNIX that
I downloaded from the net. xmlpretty is a simple perl program that
uses a module called YAWriter.pm that came with the package. So
xmlpretty has:

use XML::Handler::YAWriter;

However, with xmlpretty and YAWriter.pm in the same directory and
running xmlpretty from this directory, perl complains it can't find
YAWriter.pm:

$ export PERL5LIB=`pwd`
$ xmlpretty
Can't locate XML/Handler/YAWriter.pm in @INC (@INC contains: /home/
kertz/xml/XML
-Handler-YAWriter-0.23 /usr/perl5/5.00503/sun4-solaris /usr/
perl5/5.00503 /usr/p
erl5/site_perl/5.005/sun4-solaris /usr/perl5/site_perl/5.005 .) at
xmlpretty line 4.
BEGIN failed--compilation aborted at xmlpretty line 4.

Note that @INC is set to the current directory twice - first with the
PERL5LIB and the default addition of the current directory (.) to this
search path.

However, if I run the xmlpretty directly with the perl command and use
the -l option to specify the current directory, it works (and fails if
I leave the -l option off):

$ perl -l `pwd` xmlpretty
$

Can anyone tell me what I need to do to be able to run xmlpretty
directly and have it find the YAWriter.pm module that is in the same
directory?

Here is my perl version:
This is perl, version 5.005_03 built for sun4-solaris

Denis
 
G

Gunnar Hjalmarsson

I'm trying to use an XML pretty printer called xmlpretty on UNIX that
I downloaded from the net. xmlpretty is a simple perl program that
uses a module called YAWriter.pm that came with the package. So
xmlpretty has:

use XML::Handler::YAWriter;

However, with xmlpretty and YAWriter.pm in the same directory and
running xmlpretty from this directory, perl complains it can't find
YAWriter.pm:

$ export PERL5LIB=`pwd`
$ xmlpretty
Can't locate XML/Handler/YAWriter.pm in @INC (@INC contains: /home/
kertz/xml/XML
-Handler-YAWriter-0.23 /usr/perl5/5.00503/sun4-solaris /usr/
perl5/5.00503 /usr/p
erl5/site_perl/5.005/sun4-solaris /usr/perl5/site_perl/5.005 .) at
xmlpretty line 4.
BEGIN failed--compilation aborted at xmlpretty line 4.

Note that @INC is set to the current directory twice - first with the
PERL5LIB and the default addition of the current directory (.) to this
search path.

However, if I run the xmlpretty directly with the perl command and use
the -l option to specify the current directory, it works (and fails if
I leave the -l option off):

$ perl -l `pwd` xmlpretty
$

Can anyone tell me what I need to do to be able to run xmlpretty
directly and have it find the YAWriter.pm module that is in the same
directory?

It's a module, and not supposed to be placed in the same directory as
the script. The best you can do is to install XML::Handler::YAWriter
properly, e.g. using CPAN.pm.

Another option is to create a directory XML in
/usr/perl5/site_perl/5.005, then create a subdirectory Handler in the
XML directory and place YAWriter.pm there. Then you should have:

/usr/perl5/site_perl/5.005/XML/Handler/YAWriter.pm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top