http://qs321.pair.com?node_id=629351


in reply to Re: SOAP Modules (OO or not?)
in thread SOAP Modules (OO or not?)

I'm probably misunderstanding your post, but you can place method calls on soap objects. At least, on my laptop :) Here's an object I have in a little script in my cgi-bin:
#!/usr/bin/perl use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI->dispatch_to('Object')->handle; package Object; sub new { my $class = shift; $class = ref($class) || $class; return bless { '_cache' => [] }, $class; } sub set { my ( $self, $arg ) = @_; $self->{'_field'} = $arg; push @{ $self->{'_cache'} }, $arg; } sub get { shift->{'_field'} } sub all { shift->{'_cache' } }
Here's a simple client:
#!/usr/bin/perl use strict; use warnings; use SOAP::Lite +autodispatch => uri => 'http://www.perlmonks.org/Object', proxy => 'http://localhost/cgi-bin/soap.pl'; my $obj = Object->new(); for ( qw'So how is it possible that it stores and returns these? ???' +) { $obj->set( $_ ); print $obj->get, "\n"; } print join ' ', @{ $obj->all };
And sure enough, it prints:
So how is it possible that it stores and returns these? ??? So how is it possible that it stores and returns these? ???
I'm not quite sure how SOAP::Lite does this - some sort of session? And not even under mod_perl or anything, frankly I don't quite get it...