>> You can serialize/deserilize object with Storable >> >> $foo = new Bar >> store_fd $foo, \*SOCKET; >> >> and on the other end >> >> $foo = retrieve_fd \*SOCKET; >> $foo->bar; >> >> It will work if you have Bar module on both ends. DS> Right, but I want it to work if you don't... Then maybe SOAP::Lite? SOAP allows to serialize/deserialize objects and make remote call. SOAP::Lite makes it quite transparent. server part (which has module Bar): use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to(qw(Bar)) -> handle; package Bar; sub get_bar { new Bar }; sub new { ... }; sub bar { ... }; client part: use SOAP::Lite +autodispatch => uri => 'http://www.host.com/Bar', proxy => 'http://www.host.com/cgi-bin/server.pl'; my $foo = Bar->get_bar; $foo->bar; Another solution is module Class::Tom. I've not tried it so check it yourself: http://search.cpan.org/doc/JDUNCAN/Class-Tom-3.02/Tom.pm. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | Ilya Martynov (http://martynov.org/) | | GnuPG 1024D/323BDEE6 D7F7 561E 4C1D 8A15 8E80 E4AE BE1A 53EB 323B DEE6 | | AGAVA Software Company (http://www.agava.com/) | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-