The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 1;

$ENV{'CGI_APP_RETURN_ONLY'} = 1; # don't print

{
    package WithStartIssue;

    use base 'CGI::Application';

    # register custom "start" run mode.
    # this is what CAP::AutoRunmode and CAP::RunmodeDeclare do.
    __PACKAGE__->add_callback('init' => sub {
        shift->run_modes('start' => 'my_start');
        }
    );

    sub my_start { return 'my start' }

    # don't output a header
    sub cgiapp_prerun {
        shift->header_type('none');
    }
}

my $issue = WithStartIssue->new;
my $out = $issue->run;

is $out, 'my start';