... use MyModuule; MyModuule::DoTheCLIDance( @ARGV ); exit( 0 ); #### sub MyModuule::DoTheCLIDance { my %args = GetOptMyArgsIWant(\@_); my $query = CGI->new( %args ); ## FORMDATA my( $headers, $body ) = DoTheDance( $query ); print $body; ## no headers on CLI :) } #### sub MyModuule::DoTheCgiDanceOTHER { my $query = CGI->new; my( $headers, $body ) = PutOnSomePants( $query ); print $headers, $body; } sub MyModuule::DoTheCLIDanceOTHER { ## no advanced getopt stuff ## just key value key value key value my $query = CGI->new( @_ ); my( $headers, $body ) = PutOnSomePants( $query ); print $body; }