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

RE: [soaplite] 5.6 vs 5.8 differences??...or...???

Expand Messages
  • Pierre Denis
    It is probably a bug in perl 5.8 UNIVERSAL::AUTOLOAD is broken in 5.8 and it is used by SOAP::Lite when autodispatch is on Try these 3 examples below, and
    Message 1 of 3 , Aug 29, 2002
    • 0 Attachment
      It is probably a bug in perl 5.8
      UNIVERSAL::AUTOLOAD is broken in 5.8 and it is used by SOAP::Lite when
      autodispatch is "on"

      Try these 3 examples below, and you'll see that UNIVERSAL::AUTOLOAD is
      broken under 5.8 - they all should display "Universal called (Foo::bar)..."
      and the 1st example doesn't...
      Leon Brocard has submitted a perl bug about it.

      Basically, "autodispatch" option is in trouble because of this bug (there
      are some CPAN modules having the same problem).


      ================
      Foo->bar;

      package UNIVERSAL;
      sub AUTOLOAD {
      print "Universal called ($AUTOLOAD)\n";
      }
      ================


      ================
      Foo->bar();
      Foo::boo();

      package UNIVERSAL;
      sub AUTOLOAD {
      print "Universal called ($AUTOLOAD)\n";
      }
      ================


      ================
      Foo->bar;
      Foo::boo;

      package UNIVERSAL;
      sub AUTOLOAD {
      print "Universal called ($AUTOLOAD)\n";
      }
      ================


      Regards

      Pierre Denis
      Development Manager
      Fotango


      > -----Original Message-----
      > From: markw@...
      > [mailto:markw@...]On Behalf Of
      > mwilkinson@...
      > Sent: 28 August 2002 22:29
      > To: soaplite@yahoogroups.com
      > Subject: [soaplite] 5.6 vs 5.8 differences??...or...???
      >
      >
      > Hi Group,
      >
      > Could I take a couple of minutes of your time to ask some of you to test
      > this small script? I am baffled about why it runs perfectly on one of
      > my machines but not on the other. The one that runs it has perl 5.6
      > installed, the one that fails has perl 5.8. the error message is
      > "Can't locate object method "new" via package "MOBY::Central" (perhaps
      > you forgot to load "MOBY::Central"?)"... it's almost as if it is
      > completely ignoring the uri parameter...???
      >
      > Can a few of you with perl 5.6 or 5.8 installed please try this and let
      > me know if you get this error also? I can't think of any other reason
      > that might explain why the same simple code works on one machine and not
      > the other.
      >
      > Please write to me directly so as not to clutter the mailing list.
      >
      > Thanks!
      >
      > M
      > -----------------------------------------------------------------
      > #!/usr/bin/perl -w
      >
      > use SOAP::Lite +autodispatch =>
      > uri => 'http://bioinfo.pbi.nrc.ca:8099/MOBY/Central',
      > proxy => 'http://bioinfo.pbi.nrc.ca:8099/cgi-bin/MOBY-Central.pl',
      > on_fault => sub {
      > my($soap, $res) = @_;
      > die ref $res ? $res->faultstring : $soap->transport->status, "\n";
      > };
      >
      >
      > my $Central = MOBY::Central->new;
      > ------------------------------------------------------------------
      >
      >
      >
      >
      > 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 Pierre, Yes, I ve got the same results :(. One workaround is to use dispatch_from option instead of autodispatch . It installs AUTOLOAD method into
      Message 2 of 3 , Aug 29, 2002
      • 0 Attachment
        Hi Pierre,

        Yes, I've got the same results :(. One workaround is to use
        'dispatch_from' option instead of 'autodispatch'. It installs
        AUTOLOAD method into specific package(s) and works with 5.8.

        Another workaround is to use

        MyPackage::foo() if 0;

        somewhere in the code that uses autodispatch, but it looks yucky.

        Best wishes, Paul.

        --- Pierre Denis <pdenis@...> wrote:
        > It is probably a bug in perl 5.8
        > UNIVERSAL::AUTOLOAD is broken in 5.8 and it is used by SOAP::Lite
        > when
        > autodispatch is "on"
        >
        > Try these 3 examples below, and you'll see that UNIVERSAL::AUTOLOAD
        > is
        > broken under 5.8 - they all should display "Universal called
        > (Foo::bar)..."
        > and the 1st example doesn't...
        > Leon Brocard has submitted a perl bug about it.
        >
        > Basically, "autodispatch" option is in trouble because of this bug
        > (there
        > are some CPAN modules having the same problem).
        >
        >
        > ================
        > Foo->bar;
        >
        > package UNIVERSAL;
        > sub AUTOLOAD {
        > print "Universal called ($AUTOLOAD)\n";
        > }
        > ================
        >
        >
        > ================
        > Foo->bar();
        > Foo::boo();
        >
        > package UNIVERSAL;
        > sub AUTOLOAD {
        > print "Universal called ($AUTOLOAD)\n";
        > }
        > ================
        >
        >
        > ================
        > Foo->bar;
        > Foo::boo;
        >
        > package UNIVERSAL;
        > sub AUTOLOAD {
        > print "Universal called ($AUTOLOAD)\n";
        > }
        > ================
        >
        >
        > Regards
        >
        > Pierre Denis
        > Development Manager
        > Fotango
        >
        >
        > > -----Original Message-----
        > > From: markw@...
        > > [mailto:markw@...]On Behalf Of
        > > mwilkinson@...
        > > Sent: 28 August 2002 22:29
        > > To: soaplite@yahoogroups.com
        > > Subject: [soaplite] 5.6 vs 5.8 differences??...or...???
        > >
        > >
        > > Hi Group,
        > >
        > > Could I take a couple of minutes of your time to ask some of you
        > to test
        > > this small script? I am baffled about why it runs perfectly on
        > one of
        > > my machines but not on the other. The one that runs it has perl
        > 5.6
        > > installed, the one that fails has perl 5.8. the error message is
        > > "Can't locate object method "new" via package "MOBY::Central"
        > (perhaps
        > > you forgot to load "MOBY::Central"?)"... it's almost as if it is
        > > completely ignoring the uri parameter...???
        > >
        > > Can a few of you with perl 5.6 or 5.8 installed please try this
        > and let
        > > me know if you get this error also? I can't think of any other
        > reason
        > > that might explain why the same simple code works on one machine
        > and not
        > > the other.
        > >
        > > Please write to me directly so as not to clutter the mailing
        > list.
        > >
        > > Thanks!
        > >
        > > M
        > > -----------------------------------------------------------------
        > > #!/usr/bin/perl -w
        > >
        > > use SOAP::Lite +autodispatch =>
        > > uri => 'http://bioinfo.pbi.nrc.ca:8099/MOBY/Central',
        > > proxy =>
        > 'http://bioinfo.pbi.nrc.ca:8099/cgi-bin/MOBY-Central.pl',
        > > on_fault => sub {
        > > my($soap, $res) = @_;
        > > die ref $res ? $res->faultstring : $soap->transport->status,
        > "\n";
        > > };
        > >
        > >
        > > my $Central = MOBY::Central->new;
        > >
        > ------------------------------------------------------------------
        > >
        > >
        > >
        > >
        > > 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/
        > >
        > >
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > 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/
        >
        >


        __________________________________________________
        Do You Yahoo!?
        Yahoo! Finance - Get real-time stock quotes
        http://finance.yahoo.com
      Your message has been successfully submitted and would be delivered to recipients shortly.