my $id = $self->query->param('id'); $self->param("object") = $self->get_obj($id) if $id; #### sub foo { my $self = shift; my $object = $self->param("object") or return $self->get_id(); # ... the rest } #### sub cgiapp_prerun { # ... my $id = $self->query->param('id'); if (!$id) { return $self->prerun_mode('get_id'); } $self->param("object") = $self->get_obj($id); # ... }