sub start { my ($self) = @_; my $start = Start->new( app => $self ); return $start->output; } #### package Start; use strict; use warnings; sub new { my $class = shift; my %args = @_; my $self = { app => $args{app}; }; bless $self, $class; } #### sub app { my $self = shift; return $self->{app}; } #### sub output { my ($self) = @_; my $query = $self->app->query; my $param = $self->app->param( 'my_param' ); # do stuff return $output; }