use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to('foo') -> handle; package foo; . . . =begin WSDL _IN usr_nm $string User Name _IN pwd $string Password _IN ext_id $string External ID _IN bar_cd $string Bar Code _RETURN $int Number of passes inserted (should be one) =end WSDL sub bar { my (undef, $usr_nm, $pwd, $ext_id, $bar_cd) = @_; do stuff; return(1); }