use SOAP::Lite; use SOAP::Transport::HTTP; $SIG{PIPE} = 'IGNORE'; $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalPort => 8001, LocalAddr => 'localhost', listen => 5) -> dispatch_to(qw(demo)); print "Contact to SOAP server at ", $daemon->url, "\n"; $daemon->handle; #### package demo; sub new { print "called NEW\n"; my $pkg = shift; my $self = {}; bless($self, $pkg); return $self; } sub DESTROY { print "DESTROY - called\n"; } sub getVal { my $self = shift; print "val = $self->{VAR}\n"; } sub setVal { my $self = shift; print "set val\n"; $self->{VAR} = shift; } #### use SOAP::Lite +autodispatch => uri => 'http://localhost/demo', proxy => 'http://localhost:8001/'; my $obj = demo->new(); $obj->getVal(); $obj->setVal(44); $obj->getVal(); #### called NEW DESTROY - called val = DESTROY - called set val DESTROY - called val = 44 DESTROY - called