in reply to CGI::Application question

artist,
First you need to understand that $self->param() ne $self->query()->param(). The former is more like a internal scratch pad available to all run-modes while the latter is the CGI query parameter method.
sub setup { my $self = shift; $self->param('id' => 123); }
Not knowing what you are trying to accomplish, you may also want to look into CGI::Session.

Cheers - L~R