in reply to SOAP::Transport::HTTP::CGI checking wrong namespace for method

I note that while you do use Report; in your script, you do not export any subroutines from your Report module. This means that main will not import the subroutine by default, and hence you won't find it in the main namespace. I've never used these modules before, but that seems to be what your error is pointing to. To export the Report subroutine, include the following code at the top of your Report module:

package Report; use Data::Dumper; use strict; use warnings; use ReportRequest; use ReportResponse; use Exporter; our @ISA = (Exporter); our @EXPORT = qw(Report);

and repeat that for both ReportRequest and ReportResponse. Better practice suggests you should use optional importing, which is done by changing @EXPORT to @EXPORT_OK and changing use Report; to use Report qw(Report);, as a user of your module may not necessarily want you modifying their namespace. See Exporter and perlmod for more details. You may also want to use vars in place of our for your global declaration for backward compatibility.