Thanks BUU (and [Limbic~Region who msg me), but I not quite sure I'm getting it. Let me explain what's going on in my actual script. If there is an error, the error handler sets up a HTML::Template page using the associate attribute, and uses CGI::Application::Plugin::FillInForm to set any check boxes, etc. and then exits the script by outputing the form with the error, along with any messages.
Here's more of the script
if (@errors) {
errorhandler (\@errors, "subscribers", $fifvalues);
};
sub errorhandler {
my @errorlist;
my $errors = shift;
my $tmplpage = shift;
my $fifvalues = shift;
foreach (@$errors) {
my %one_record = (errormsg => $_);
push (@errorlist, \%one_record);
}
$template = $self->load_tmpl($tmplpage.'.tmpl',
associate => $query,
die_on_bad_params => 0);
$template->param( errorlist => \@errorlist);
my $html_output = $self->fill_form( \$template->output, $fifvalues
+);
return $html_output; #exits application
}
Can you show me what the code might look like that preserves this return value? Thanks!
—Brad "The important work of moving the world forward does not wait to be done by perfect men." George Eliot
| [reply] [d/l] |
Unless you start messing around with print (which I wouldn't recommend until you understand CGI::App more), CGI::App will only display what you explictly return from a runmode.
So to show the results of another sub that your runmode calls, you need to get it's results into your runmode's return:-
# Perhaps like this...
return errorhandler(\@errors)
. "here2: " . Dumper(@errors);
# ...or this...
my $errors = errorhandler(\@errors);
return $errors . "here2: " . Dumper(@errors);
Update: s/would/wouldn't/; | [reply] [d/l] |