in reply to Re: XML::Simple and use lib
in thread XML::Simple and use lib

Oh, sorry about that: Here's a piece of my code:

#!/usr/bin/perl use strict; use lib "/www/htdocs/v028502/cgi-bin/Modules/"; use CGI; # does not need use lib use HTML::Template; # does need use lib and works fine use XML::Simple; # does need use lib but doesn't work correctly (XMLou +t() works) use LWP::Simple; # does need use lib and works fine, too. my $q = new CGI; my $name = $q->param('name'); $name = lc($name); my $xml = XMLin("$name.xml", searchpath => ['users']); # NOT possible +on the Linux machine! print $q->header('text/html'); # HTML Header print "$xml->{email}<br>$xml->{adress}"; # For Example... exit;
I can not run my source file from the command line, because it is the machine of my ISP. On my local webserver it works absolutely fine, also in the command line. I even asked for the error logs, but they didn't send it to me yet.
I hope I made my problem a bit more clear.

Replies are listed 'Best First'.
Re: Re: Re: XML::Simple and use lib
by krisahoch (Deacon) on Aug 16, 2002 at 19:26 UTC

    Since you don't have access to logs or command line, here is what I would suggest. Change the line
    <i>my $xml = XMLin("$name.xml", searchpath => ['users']);</i>

    my $xml = XMLin("$name.xml", searchpath => ['users']); use Data::Dumper; print "<pre>" . Dumper($xml) . "</pre>";

    Then look for an element named 'adress'. I would assume you mean 'address' from the following line.
    <i>print $xml->{email}<br>$xml->{adress}</i>


    Updated: added code tags

Re: Re: Re: XML::Simple and use lib
by thraxil (Prior) on Aug 16, 2002 at 20:28 UTC

    if you don't have access to your error logs and XMLin() seems to be where it's dieing, maybe try something like:

    print $q->header(); my $xml; eval { $xml = XMLin("$name.xml", searchpath => ['users']); }; if($@) { print "the error was: <pre>$@</pre>"; } else { print "no error was generated."; }

    anders pearson

      Hallo thraxil!

      Thank you for your help, and of course I thank all of you.
      With eval() I was now able to know WHAT exactly failed. And that's the output:

      the error was: 
      XML::Parser::Expat object version 2.30 does not match bootstrap parameter 2.27 at /usr/lib/perl5/5.6.1/i386-linux/ line 225.
      Compilation failed in require at /www/htdocs/v028502/cgi-bin/Modules/XML/ line 15.
      BEGIN failed--compilation aborted at /www/htdocs/v028502/cgi-bin/Modules/XML/ line 27.
      Compilation failed in require at /www/htdocs/v028502/cgi-bin/Modules/XML/ line 224.

      Now I'm going to read through the module-lines failed in the execution.
      Does anyone have an idea what is ment by "bootstrap parameter" ? Sorry about my little knowledge.
        It looks to me like you have a copy of XML::Parser in your Modules directory and the system already has one installed under /usr/lib. Your one is broken - simply delete it.