The pod on WSDL::Generator says it has issues:
WSDL doesn’t works only on perl 5.6 and not 5.8. UNIVERSAL::AUTOLOAD i
+s broken in perl 5.8 and it is used by Class::Hook upon wich WSDL::Ge
+nerator depends.
You can use Pod::WSDL (update: wrong package name) instead though. Here's the package marked up with some pod and a different Perl script following it:
package WebserviceFunctions;
sub new { bless {}, shift; }
=begin WSDL
_DOC Hello
+
=end WSDL
sub Hello {
my ($s, $name) = @_;
return "Hello, $name".$/;
}
+
=begin WSDL
_DOC Goodbye
=end WSDL
sub Goodbye {
my ($s, $name) = @_;
return "Goodbye, $name".$/;
}
and the script:
#!/usr/bin/perl -w
use Pod::WSDL;
use CGI;
print CGI->header('text/xml');
my $pod = new Pod::WSDL(source=> 'WebServiceFunctions',
location=>'http://localhost/webservice_pod.pl'
+,
pretty=>1,
withDocumentation=>1);
print $pod->WSDL;
1;
Celebrate Intellectual Diversity