#!perl -w use SOAP::Transport::HTTP; SOAP::Transport::HTTP::Daemon ->new(LocalPort=>1111,ReuseAddr=>1) -> dispatch_to('TestWrapper') -> handle; package TestWrapper; use Data::Dumper; sub new { my $self = shift; my $class = ref($self) || $self; return bless {} => $class; } sub put { my ($self, $key, $val) = @_; $self->{_HASH}{$key} = $val; } sub get { my ($self, $key) = @_; return $self->{_HASH}{$key}; } 1; #### use strict; use warnings; use SOAP::Lite; my $soap = SOAP::Lite -> uri('http://localhost:1111/TestWrapper') -> proxy('http://localhost:1111/'); my $t1 = $soap->new(); $t1->put('element1', 'value1'); my $t2 = $soap->new(); $t2->put('element1', 'value2')->result; printf("t1 : %s\n", $t1->get('element1')->result); printf("t2 : %s\n", $t2->get('element1')->result); #### $ perl client.pl t1 : value2 t2 : value2 #### use TestWrapper; my $t1 = new TestWrapper; $t1->put('element1', 'value1'); my $t2 = new TestWrapper; $t2->put('element1', 'value2'); printf("t1 : %s\n", $t1->get('element1')); printf("t2 : %s\n", $t2->get('element1')); #### $ perl standalone.pl t1 : value1 t2 : value2