Loading ...
Sorry, an error occurred while loading the content.

RE: [soaplite] Re: Diesignal and Expath.pm

Expand Messages
  • Sean.Meisner@VerizonWireless.com
    Expat.pm does something squirrely. It has a method that allows you to pass in a scalar containing a string of XML, OR a handle to a file that presumably
    Message 1 of 11 , Nov 12, 2002
    • 0 Attachment
      Expat.pm does something squirrely. It has a method that
      allows you to pass in a scalar containing a string of XML,
      OR a handle to a file that presumably contains some XML.

      In order to ascertain whether it's been passed a
      string or a filehandle, the method first attempts to
      treat the variable as a filehandle. This generates a
      die signal if the variable you have passed was a string.
      The method catches the die signal using eval {} so normally
      you would never know the signal was generated.

      This is all good UNLESS the default die handler is overidden.
      Then, you'll see strange behaviour. This has caused problems
      for me when using CGI::Carp in conjunction with Expat,
      because CGI::Carp also overrides the default die handler.

      Cheers,

      Sean


      > -----Original Message-----
      > From: trond_straume [mailto:trond.straume@...]
      > Sent: Tuesday, November 12, 2002 4:08 AM
      > To: soaplite@yahoogroups.com
      > Subject: [soaplite] Re: Diesignal and Expath.pm
      >
      >
      > Hi!
      >
      > Yes, this works just fine!
      >
      > But I still don't get it why "XML/Parser/Expat.pm line 456." sends
      > diesignal when using XML::Parser. May it be due to 5.6.1?
      >
      > Trond
      >
      > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
      > > Hi Tim,
      > >
      > > > This is an old bug (>6 months). There is a problem with one of the
      > > > pattern
      > > > matches in the pure-perl parser (a bug in the perl detainting). I
      > >
      > > This one?
      > >
      > > (XML::Parser::Lite.pm)
      > > - eval qq{sub parse_re { use re "eval"; 1 while \$_[0] =~
      > > m{$_}go }; 1} or die;
      > > + eval qq{sub parse_re { use re "eval"; my \$t = \$_[0]; 1
      > while
      > > \$t =~ m{$_}go }; 1} or die;
      > >
      > > Trond, does this help? Can't think of anything else.
      > >
      > > Best wishes, Paul.
      > >
      > > --- Tim Jenness <t.jenness@j...> wrote:
      > > >
      > > > This is an old bug (>6 months). There is a problem with one of the
      > > > pattern
      > > > matches in the pure-perl parser (a bug in the perl detainting). I
      > > > think
      > > > Paul has a workaround (it came up in perl5-porters prior to the
      > > > release of
      > > > perl 5.8.0) but I can't remember exactly what that work around is
      > > > (I was
      > > > hoping he would make a new release with this fix in).
      > > >
      > > > Tim
      > > >
      > > > On Mon, 11 Nov 2002, trond_straume wrote:
      > > >
      > > > > But with:
      > > > >
      > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
      > > > >
      > > > > I'm not able to run Perl in Tainted mode. The script "stops
      > > > > processing" after recieving the response from the server (just
      > > > > waiting to timeout)...
      > > > >
      > > > > Why?
      > > > >
      > > > > Regards
      > > > > Trond Straume
      > > > >
      > > > > --- In soaplite@y..., "trond_straume" <trond.straume@o...>
      > wrote:
      > > > > > When I included:
      > > > > >
      > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
      > > > > >
      > > > > > to my code, everything seems to work fine (though it runs a
      > bit
      > > >
      > > > > > slower).
      > > > > >
      > > > > > Is it possible that the problem is due to my installation of
      > > > > > XML::Parser?
      > > > > >
      > > > > > (I'm using perl 5.6.1)
      > > > > >
      > > > > > Regards
      > > > > >
      > > > > > Trond Straume
      > > > > >
      > > > > > --- In soaplite@y..., "trond_straume" <trond.straume@o...>
      > > > wrote:
      > > > > > > Hi!
      > > > > > >
      > > > > > > when I'm including this code to mye Soap::Lite client:
      > > > > > >
      > > > > > > sub BEGIN {
      > > > > > > $diehandler = $SIG{'__DIE__'};
      > > > > > > $SIG{'__DIE__'} = \&print_error;
      > > > > > > }
      > > > > > >
      > > > > > > sub END {
      > > > > > > $SIG{'__DIE__'} = $diehandler;
      > > > > > > }
      > > > > > >
      > > > > > > it produces this strange errormessage:
      > > > > > >
      > > > > > > Can't use string ("<?xml version='1.0' encoding='UT") as a
      > > > symbol
      > > > > > ref
      > > > > > > while "strict refs" in use
      > > > > > > at /local/perl/5.6.1/lib/site_perl/5.6.1/sun4-solaris-
      > > > > > > ld/XML/Parser/Expat.pm line 456.
      > > > > > >
      > > > > > > The thing is that the response from the soap-server,
      > includes
      > > >
      > > > > this
      > > > > > > declaration:
      > > > > > >
      > > > > > > <?xml version='1.0' encoding='UTF-8'?>
      > > > > > > blah blah
      > > > > > > blah
      > > > > > > .
      > > > > > > .
      > > > > > >
      > > > > > > Are there any known problems, when using single quotes (')
      > > > > instead
      > > > > > of
      > > > > > > double ("), or is the error due to other problems?
      > > > > > >
      > > > > > > Regards
      > > > > > >
      > > > > > > Trond Straume
      > > > >
      > > > >
      > > > >
      > > > > To unsubscribe from this group, send an email to:
      > > > > soaplite-unsubscribe@y...
      > > > >
      > > > >
      > > > >
      > > > > Your use of Yahoo! Groups is subject to
      > > > http://docs.yahoo.com/info/terms/
      > > > >
      > > > >
      > > > >
      > > >
      > > > --
      > > > Tim Jenness
      > > > JAC software
      > > > http://www.jach.hawaii.edu/~timj
      > > >
      > > >
      > > >
      > > > ------------------------ Yahoo! Groups Sponsor
      > > >
      > > > To unsubscribe from this group, send an email to:
      > > > soaplite-unsubscribe@y...
      > > >
      > > >
      > > >
      > > > Your use of Yahoo! Groups is subject to
      > > > http://docs.yahoo.com/info/terms/
      > > >
      > > >
      > >
      > >
      > > __________________________________________________
      > > Do you Yahoo!?
      > > U2 on LAUNCH - Exclusive greatest hits videos
      > > http://launch.yahoo.com/u2
      >
      >
      > To unsubscribe from this group, send an email to:
      > soaplite-unsubscribe@yahoogroups.com
      >
      >
      >
      > Your use of Yahoo! Groups is subject to
      http://docs.yahoo.com/info/terms/
    • Paul Kulchenko
      Hi Sean, ... Absolutely true. However, knowing this effect, I do have local $SIG{__DIE__}; deep in my handler, so you shouldn t see parser errors (you won t
      Message 2 of 11 , Nov 12, 2002
      • 0 Attachment
        Hi Sean,

        > This is all good UNLESS the default die handler is overidden.
        > Then, you'll see strange behaviour. This has caused problems
        Absolutely true. However, knowing this effect, I do have "local
        $SIG{__DIE__};" deep in my handler, so you shouldn't see parser
        errors (you won't be able to catch them either). I wonder why that
        doesn't work.

        Best wishes, Paul.

        --- Sean.Meisner@... wrote:
        > Expat.pm does something squirrely. It has a method that
        > allows you to pass in a scalar containing a string of XML,
        > OR a handle to a file that presumably contains some XML.
        >
        > In order to ascertain whether it's been passed a
        > string or a filehandle, the method first attempts to
        > treat the variable as a filehandle. This generates a
        > die signal if the variable you have passed was a string.
        > The method catches the die signal using eval {} so normally
        > you would never know the signal was generated.
        >
        > This is all good UNLESS the default die handler is overidden.
        > Then, you'll see strange behaviour. This has caused problems
        > for me when using CGI::Carp in conjunction with Expat,
        > because CGI::Carp also overrides the default die handler.
        >
        > Cheers,
        >
        > Sean
        >
        >
        > > -----Original Message-----
        > > From: trond_straume [mailto:trond.straume@...]
        > > Sent: Tuesday, November 12, 2002 4:08 AM
        > > To: soaplite@yahoogroups.com
        > > Subject: [soaplite] Re: Diesignal and Expath.pm
        > >
        > >
        > > Hi!
        > >
        > > Yes, this works just fine!
        > >
        > > But I still don't get it why "XML/Parser/Expat.pm line 456."
        > sends
        > > diesignal when using XML::Parser. May it be due to 5.6.1?
        > >
        > > Trond
        > >
        > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
        > > > Hi Tim,
        > > >
        > > > > This is an old bug (>6 months). There is a problem with one
        > of the
        > > > > pattern
        > > > > matches in the pure-perl parser (a bug in the perl
        > detainting). I
        > > >
        > > > This one?
        > > >
        > > > (XML::Parser::Lite.pm)
        > > > - eval qq{sub parse_re { use re "eval"; 1 while \$_[0] =~
        > > > m{$_}go }; 1} or die;
        > > > + eval qq{sub parse_re { use re "eval"; my \$t = \$_[0]; 1
        >
        > > while
        > > > \$t =~ m{$_}go }; 1} or die;
        > > >
        > > > Trond, does this help? Can't think of anything else.
        > > >
        > > > Best wishes, Paul.
        > > >
        > > > --- Tim Jenness <t.jenness@j...> wrote:
        > > > >
        > > > > This is an old bug (>6 months). There is a problem with one
        > of the
        > > > > pattern
        > > > > matches in the pure-perl parser (a bug in the perl
        > detainting). I
        > > > > think
        > > > > Paul has a workaround (it came up in perl5-porters prior to
        > the
        > > > > release of
        > > > > perl 5.8.0) but I can't remember exactly what that work
        > around is
        > > > > (I was
        > > > > hoping he would make a new release with this fix in).
        > > > >
        > > > > Tim
        > > > >
        > > > > On Mon, 11 Nov 2002, trond_straume wrote:
        > > > >
        > > > > > But with:
        > > > > >
        > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
        > > > > >
        > > > > > I'm not able to run Perl in Tainted mode. The script "stops
        >
        > > > > > processing" after recieving the response from the server
        > (just
        > > > > > waiting to timeout)...
        > > > > >
        > > > > > Why?
        > > > > >
        > > > > > Regards
        > > > > > Trond Straume
        > > > > >
        > > > > > --- In soaplite@y..., "trond_straume" <trond.straume@o...>
        > > wrote:
        > > > > > > When I included:
        > > > > > >
        > > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
        > > > > > >
        > > > > > > to my code, everything seems to work fine (though it runs
        > a
        > > bit
        > > > >
        > > > > > > slower).
        > > > > > >
        > > > > > > Is it possible that the problem is due to my installation
        > of
        > > > > > > XML::Parser?
        > > > > > >
        > > > > > > (I'm using perl 5.6.1)
        > > > > > >
        > > > > > > Regards
        > > > > > >
        > > > > > > Trond Straume
        > > > > > >
        > > > > > > --- In soaplite@y..., "trond_straume"
        > <trond.straume@o...>
        > > > > wrote:
        > > > > > > > Hi!
        > > > > > > >
        > > > > > > > when I'm including this code to mye Soap::Lite client:
        > > > > > > >
        > > > > > > > sub BEGIN {
        > > > > > > > $diehandler = $SIG{'__DIE__'};
        > > > > > > > $SIG{'__DIE__'} = \&print_error;
        > > > > > > > }
        > > > > > > >
        > > > > > > > sub END {
        > > > > > > > $SIG{'__DIE__'} = $diehandler;
        > > > > > > > }
        > > > > > > >
        > > > > > > > it produces this strange errormessage:
        > > > > > > >
        > > > > > > > Can't use string ("<?xml version='1.0' encoding='UT")
        > as a
        > > > > symbol
        > > > > > > ref
        > > > > > > > while "strict refs" in use
        > > > > > > > at /local/perl/5.6.1/lib/site_perl/5.6.1/sun4-solaris-
        > > > > > > > ld/XML/Parser/Expat.pm line 456.
        > > > > > > >
        > > > > > > > The thing is that the response from the soap-server,
        > > includes
        > > > >
        > > > > > this
        > > > > > > > declaration:
        > > > > > > >
        > > > > > > > <?xml version='1.0' encoding='UTF-8'?>
        > > > > > > > blah blah
        > > > > > > > blah
        > > > > > > > .
        > > > > > > > .
        > > > > > > >
        > > > > > > > Are there any known problems, when using single quotes
        > (')
        > > > > > instead
        > > > > > > of
        > > > > > > > double ("), or is the error due to other problems?
        > > > > > > >
        > > > > > > > Regards
        > > > > > > >
        > > > > > > > Trond Straume
        > > > > >
        > > > > >
        > > > > >
        > > > > > To unsubscribe from this group, send an email to:
        > > > > > soaplite-unsubscribe@y...
        > > > > >
        > > > > >
        > > > > >
        > > > > > Your use of Yahoo! Groups is subject to
        > > > > http://docs.yahoo.com/info/terms/
        > > > > >
        > > > > >
        > > > > >
        > > > >
        > > > > --
        > > > > Tim Jenness
        > > > > JAC software
        > > > > http://www.jach.hawaii.edu/~timj
        > > > >
        > > > >
        > > > >
        > > > > ------------------------ Yahoo! Groups Sponsor
        > > > >
        > > > > To unsubscribe from this group, send an email to:
        > > > > soaplite-unsubscribe@y...
        > > > >
        > > > >
        > > > >
        > > > > Your use of Yahoo! Groups is subject to
        > > > > http://docs.yahoo.com/info/terms/
        > > > >
        > > > >
        > > >
        > > >
        > > > __________________________________________________
        > > > Do you Yahoo!?
        >
        === message truncated ===


        __________________________________________________
        Do you Yahoo!?
        U2 on LAUNCH - Exclusive greatest hits videos
        http://launch.yahoo.com/u2
      • Sean.Meisner@VerizonWireless.com
        Hi Paul, That wouldn t help if the die handler has already been overidden before your method gets called. It would localize the value but it wouldn t reset
        Message 3 of 11 , Nov 12, 2002
        • 0 Attachment
          Hi Paul,

          That wouldn't help if the die handler has already been overidden
          before your method gets called. It would localize the value but
          it wouldn't reset it. But you might be able to set it back to
          the default handler for the scope of your method. Something like:

          {
          local($SIG{'__DIE__'}) = 'DEFAULT';
          ...
          ...
          }


          Cheers,

          Sean


          > -----Original Message-----
          > From: Paul Kulchenko [mailto:paulclinger@...]
          > Sent: Tuesday, November 12, 2002 3:13 PM
          > To: Sean.Meisner@...; soaplite@yahoogroups.com
          > Subject: RE: [soaplite] Re: Diesignal and Expath.pm
          >
          >
          > Hi Sean,
          >
          > > This is all good UNLESS the default die handler is overidden.
          > > Then, you'll see strange behaviour. This has caused problems
          > Absolutely true. However, knowing this effect, I do have "local
          > $SIG{__DIE__};" deep in my handler, so you shouldn't see parser
          > errors (you won't be able to catch them either). I wonder why that
          > doesn't work.
          >
          > Best wishes, Paul.
          >
          > --- Sean.Meisner@... wrote:
          > > Expat.pm does something squirrely. It has a method that
          > > allows you to pass in a scalar containing a string of XML,
          > > OR a handle to a file that presumably contains some XML.
          > >
          > > In order to ascertain whether it's been passed a
          > > string or a filehandle, the method first attempts to
          > > treat the variable as a filehandle. This generates a
          > > die signal if the variable you have passed was a string.
          > > The method catches the die signal using eval {} so normally
          > > you would never know the signal was generated.
          > >
          > > This is all good UNLESS the default die handler is overidden.
          > > Then, you'll see strange behaviour. This has caused problems
          > > for me when using CGI::Carp in conjunction with Expat,
          > > because CGI::Carp also overrides the default die handler.
          > >
          > > Cheers,
          > >
          > > Sean
          > >
          > >
          > > > -----Original Message-----
          > > > From: trond_straume [mailto:trond.straume@...]
          > > > Sent: Tuesday, November 12, 2002 4:08 AM
          > > > To: soaplite@yahoogroups.com
          > > > Subject: [soaplite] Re: Diesignal and Expath.pm
          > > >
          > > >
          > > > Hi!
          > > >
          > > > Yes, this works just fine!
          > > >
          > > > But I still don't get it why "XML/Parser/Expat.pm line 456."
          > > sends
          > > > diesignal when using XML::Parser. May it be due to 5.6.1?
          > > >
          > > > Trond
          > > >
          > > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
          > > > > Hi Tim,
          > > > >
          > > > > > This is an old bug (>6 months). There is a problem with one
          > > of the
          > > > > > pattern
          > > > > > matches in the pure-perl parser (a bug in the perl
          > > detainting). I
          > > > >
          > > > > This one?
          > > > >
          > > > > (XML::Parser::Lite.pm)
          > > > > - eval qq{sub parse_re { use re "eval"; 1 while \$_[0] =~
          > > > > m{$_}go }; 1} or die;
          > > > > + eval qq{sub parse_re { use re "eval"; my \$t = \$_[0]; 1
          > >
          > > > while
          > > > > \$t =~ m{$_}go }; 1} or die;
          > > > >
          > > > > Trond, does this help? Can't think of anything else.
          > > > >
          > > > > Best wishes, Paul.
          > > > >
          > > > > --- Tim Jenness <t.jenness@j...> wrote:
          > > > > >
          > > > > > This is an old bug (>6 months). There is a problem with one
          > > of the
          > > > > > pattern
          > > > > > matches in the pure-perl parser (a bug in the perl
          > > detainting). I
          > > > > > think
          > > > > > Paul has a workaround (it came up in perl5-porters prior to
          > > the
          > > > > > release of
          > > > > > perl 5.8.0) but I can't remember exactly what that work
          > > around is
          > > > > > (I was
          > > > > > hoping he would make a new release with this fix in).
          > > > > >
          > > > > > Tim
          > > > > >
          > > > > > On Mon, 11 Nov 2002, trond_straume wrote:
          > > > > >
          > > > > > > But with:
          > > > > > >
          > > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
          > > > > > >
          > > > > > > I'm not able to run Perl in Tainted mode. The script "stops
          > >
          > > > > > > processing" after recieving the response from the server
          > > (just
          > > > > > > waiting to timeout)...
          > > > > > >
          > > > > > > Why?
          > > > > > >
          > > > > > > Regards
          > > > > > > Trond Straume
          > > > > > >
          > > > > > > --- In soaplite@y..., "trond_straume" <trond.straume@o...>
          > > > wrote:
          > > > > > > > When I included:
          > > > > > > >
          > > > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
          > > > > > > >
          > > > > > > > to my code, everything seems to work fine (though it runs
          > > a
          > > > bit
          > > > > >
          > > > > > > > slower).
          > > > > > > >
          > > > > > > > Is it possible that the problem is due to my installation
          > > of
          > > > > > > > XML::Parser?
          > > > > > > >
          > > > > > > > (I'm using perl 5.6.1)
          > > > > > > >
          > > > > > > > Regards
          > > > > > > >
          > > > > > > > Trond Straume
          > > > > > > >
          > > > > > > > --- In soaplite@y..., "trond_straume"
          > > <trond.straume@o...>
          > > > > > wrote:
          > > > > > > > > Hi!
          > > > > > > > >
          > > > > > > > > when I'm including this code to mye Soap::Lite client:
          > > > > > > > >
          > > > > > > > > sub BEGIN {
          > > > > > > > > $diehandler = $SIG{'__DIE__'};
          > > > > > > > > $SIG{'__DIE__'} = \&print_error;
          > > > > > > > > }
          > > > > > > > >
          > > > > > > > > sub END {
          > > > > > > > > $SIG{'__DIE__'} = $diehandler;
          > > > > > > > > }
          > > > > > > > >
          > > > > > > > > it produces this strange errormessage:
          > > > > > > > >
          > > > > > > > > Can't use string ("<?xml version='1.0' encoding='UT")
          > > as a
          > > > > > symbol
          > > > > > > > ref
          > > > > > > > > while "strict refs" in use
          > > > > > > > > at /local/perl/5.6.1/lib/site_perl/5.6.1/sun4-solaris-
          > > > > > > > > ld/XML/Parser/Expat.pm line 456.
          > > > > > > > >
          > > > > > > > > The thing is that the response from the soap-server,
          > > > includes
          > > > > >
          > > > > > > this
          > > > > > > > > declaration:
          > > > > > > > >
          > > > > > > > > <?xml version='1.0' encoding='UTF-8'?>
          > > > > > > > > blah blah
          > > > > > > > > blah
          > > > > > > > > .
          > > > > > > > > .
          > > > > > > > >
          > > > > > > > > Are there any known problems, when using single quotes
          > > (')
          > > > > > > instead
          > > > > > > > of
          > > > > > > > > double ("), or is the error due to other problems?
          > > > > > > > >
          > > > > > > > > Regards
          > > > > > > > >
          > > > > > > > > Trond Straume
          > > > > > >
          > > > > > >
          > > > > > >
          > > > > > > To unsubscribe from this group, send an email to:
          > > > > > > soaplite-unsubscribe@y...
          > > > > > >
          > > > > > >
          > > > > > >
          > > > > > > Your use of Yahoo! Groups is subject to
          > > > > > http://docs.yahoo.com/info/terms/
          > > > > > >
          > > > > > >
          > > > > > >
          > > > > >
          > > > > > --
          > > > > > Tim Jenness
          > > > > > JAC software
          > > > > > http://www.jach.hawaii.edu/~timj
          > > > > >
          > > > > >
          > > > > >
          > > > > > ------------------------ Yahoo! Groups Sponsor
          > > > > >
          > > > > > To unsubscribe from this group, send an email to:
          > > > > > soaplite-unsubscribe@y...
          > > > > >
          > > > > >
          > > > > >
          > > > > > Your use of Yahoo! Groups is subject to
          > > > > > http://docs.yahoo.com/info/terms/
          > > > > >
          > > > > >
          > > > >
          > > > >
          > > > > __________________________________________________
          > > > > Do you Yahoo!?
          > >
          > === message truncated ===
          >
          >
          > __________________________________________________
          > Do you Yahoo!?
          > U2 on LAUNCH - Exclusive greatest hits videos
          > http://launch.yahoo.com/u2
          >
        • Paul Kulchenko
          Hi Sean, Thanks for the hint. For some reason I assumed that local $SIG{foo}; is the same as local $SIG{foo} = DEFAULT ; I ll fix that. Best wishes, Paul. ...
          Message 4 of 11 , Nov 12, 2002
          • 0 Attachment
            Hi Sean,

            Thanks for the hint. For some reason I assumed that

            local $SIG{foo};

            is the same as

            local $SIG{foo} = 'DEFAULT';

            I'll fix that.

            Best wishes, Paul.

            --- Sean.Meisner@... wrote:
            > Hi Paul,
            >
            > That wouldn't help if the die handler has already been overidden
            > before your method gets called. It would localize the value but
            > it wouldn't reset it. But you might be able to set it back to
            > the default handler for the scope of your method. Something like:
            >
            > {
            > local($SIG{'__DIE__'}) = 'DEFAULT';
            > ...
            > ...
            > }
            >
            >
            > Cheers,
            >
            > Sean
            >
            >
            > > -----Original Message-----
            > > From: Paul Kulchenko [mailto:paulclinger@...]
            > > Sent: Tuesday, November 12, 2002 3:13 PM
            > > To: Sean.Meisner@...; soaplite@yahoogroups.com
            > > Subject: RE: [soaplite] Re: Diesignal and Expath.pm
            > >
            > >
            > > Hi Sean,
            > >
            > > > This is all good UNLESS the default die handler is overidden.
            > > > Then, you'll see strange behaviour. This has caused problems
            > > Absolutely true. However, knowing this effect, I do have "local
            > > $SIG{__DIE__};" deep in my handler, so you shouldn't see parser
            > > errors (you won't be able to catch them either). I wonder why
            > that
            > > doesn't work.
            > >
            > > Best wishes, Paul.
            > >
            > > --- Sean.Meisner@... wrote:
            > > > Expat.pm does something squirrely. It has a method that
            > > > allows you to pass in a scalar containing a string of XML,
            > > > OR a handle to a file that presumably contains some XML.
            > > >
            > > > In order to ascertain whether it's been passed a
            > > > string or a filehandle, the method first attempts to
            > > > treat the variable as a filehandle. This generates a
            > > > die signal if the variable you have passed was a string.
            > > > The method catches the die signal using eval {} so normally
            > > > you would never know the signal was generated.
            > > >
            > > > This is all good UNLESS the default die handler is overidden.
            > > > Then, you'll see strange behaviour. This has caused problems
            > > > for me when using CGI::Carp in conjunction with Expat,
            > > > because CGI::Carp also overrides the default die handler.
            > > >
            > > > Cheers,
            > > >
            > > > Sean
            > > >
            > > >
            > > > > -----Original Message-----
            > > > > From: trond_straume [mailto:trond.straume@...]
            > > > > Sent: Tuesday, November 12, 2002 4:08 AM
            > > > > To: soaplite@yahoogroups.com
            > > > > Subject: [soaplite] Re: Diesignal and Expath.pm
            > > > >
            > > > >
            > > > > Hi!
            > > > >
            > > > > Yes, this works just fine!
            > > > >
            > > > > But I still don't get it why "XML/Parser/Expat.pm line 456."
            > > > sends
            > > > > diesignal when using XML::Parser. May it be due to 5.6.1?
            > > > >
            > > > > Trond
            > > > >
            > > > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...>
            > wrote:
            > > > > > Hi Tim,
            > > > > >
            > > > > > > This is an old bug (>6 months). There is a problem with
            > one
            > > > of the
            > > > > > > pattern
            > > > > > > matches in the pure-perl parser (a bug in the perl
            > > > detainting). I
            > > > > >
            > > > > > This one?
            > > > > >
            > > > > > (XML::Parser::Lite.pm)
            > > > > > - eval qq{sub parse_re { use re "eval"; 1 while \$_[0]
            > =~
            > > > > > m{$_}go }; 1} or die;
            > > > > > + eval qq{sub parse_re { use re "eval"; my \$t =
            > \$_[0]; 1
            > > >
            > > > > while
            > > > > > \$t =~ m{$_}go }; 1} or die;
            > > > > >
            > > > > > Trond, does this help? Can't think of anything else.
            > > > > >
            > > > > > Best wishes, Paul.
            > > > > >
            > > > > > --- Tim Jenness <t.jenness@j...> wrote:
            > > > > > >
            > > > > > > This is an old bug (>6 months). There is a problem with
            > one
            > > > of the
            > > > > > > pattern
            > > > > > > matches in the pure-perl parser (a bug in the perl
            > > > detainting). I
            > > > > > > think
            > > > > > > Paul has a workaround (it came up in perl5-porters prior
            > to
            > > > the
            > > > > > > release of
            > > > > > > perl 5.8.0) but I can't remember exactly what that work
            > > > around is
            > > > > > > (I was
            > > > > > > hoping he would make a new release with this fix in).
            > > > > > >
            > > > > > > Tim
            > > > > > >
            > > > > > > On Mon, 11 Nov 2002, trond_straume wrote:
            > > > > > >
            > > > > > > > But with:
            > > > > > > >
            > > > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
            > > > > > > >
            > > > > > > > I'm not able to run Perl in Tainted mode. The script
            > "stops
            > > >
            > > > > > > > processing" after recieving the response from the
            > server
            > > > (just
            > > > > > > > waiting to timeout)...
            > > > > > > >
            > > > > > > > Why?
            > > > > > > >
            > > > > > > > Regards
            > > > > > > > Trond Straume
            > > > > > > >
            > > > > > > > --- In soaplite@y..., "trond_straume"
            > <trond.straume@o...>
            > > > > wrote:
            > > > > > > > > When I included:
            > > > > > > > >
            > > > > > > > > $SOAP::Constants::DO_NOT_USE_XML_PARSER=1;
            > > > > > > > >
            > > > > > > > > to my code, everything seems to work fine (though it
            > runs
            > > > a
            > > > > bit
            > > > > > >
            > > > > > > > > slower).
            > > > > > > > >
            > > > > > > > > Is it possible that the problem is due to my
            > installation
            > > > of
            > > > > > > > > XML::Parser?
            > > > > > > > >
            > > > > > > > > (I'm using perl 5.6.1)
            > > > > > > > >
            > > > > > > > > Regards
            > > > > > > > >
            > > > > > > > > Trond Straume
            > > > > > > > >
            > > > > > > > > --- In soaplite@y..., "trond_straume"
            > > > <trond.straume@o...>
            > > > > > > wrote:
            > > > > > > > > > Hi!
            > > > > > > > > >
            > > > > > > > > > when I'm including this code to mye Soap::Lite
            > client:
            > > > > > > > > >
            > > > > > > > > > sub BEGIN {
            > > > > > > > > > $diehandler = $SIG{'__DIE__'};
            > > > > > > > > > $SIG{'__DIE__'} = \&print_error;
            > > > > > > > > > }
            > > > > > > > > >
            > > > > > > > > > sub END {
            > > > > > > > > > $SIG{'__DIE__'} = $diehandler;
            > > > > > > > > > }
            > > > > > > > > >
            > > > > > > > > > it produces this strange errormessage:
            > > > > > > > > >
            > > > > > > > > > Can't use string ("<?xml version='1.0'
            > encoding='UT")
            > > > as a
            > > > > > > symbol
            > > > > > > > > ref
            > > > > > > > > > while "strict refs" in use
            > > > > > > > > > at
            > /local/perl/5.6.1/lib/site_perl/5.6.1/sun4-solaris-
            > > > > > > > > > ld/XML/Parser/Expat.pm line 456.
            > > > > > > > > >
            > > > > > > > > > The thing is that the response from the
            > soap-server,
            > > > > includes
            > > > > > >
            >
            === message truncated ===


            __________________________________________________
            Do you Yahoo!?
            U2 on LAUNCH - Exclusive greatest hits videos
            http://launch.yahoo.com/u2
          • tomkee2002 <tomkee2002@yahoo.com>
            My solution to this problem was to add no strict refs inside the eval block above line 456 of Expat.pm. Probably not the best solution. Nevertheless, I
            Message 5 of 11 , Dec 13, 2002
            • 0 Attachment
              My solution to this problem was to add "no strict 'refs'" inside the
              eval block above line 456 of Expat.pm.

              Probably not the best solution. Nevertheless, I heard from someone
              yesterday who said version 2.27 of XML::Parser has the no strict
              'refs' line, so perhaps its absence was an oversight on by the
              XML::Parser maintainer.

              TK
            Your message has been successfully submitted and would be delivered to recipients shortly.