sub dispatch_table { my $q = shift; my $action = $q->param('action') || 0; my $confirm = $q->param('confirm') ? 1 : 0; my $commit = $q->param('commit') ? 1 : 0; my $update = $q->param{'update') ? 1 : 0; my %dispatch = ( add => { confirm => { commit => \&commit_dialog, default => \&confirm_dialog, }, default => \&update_dialog, }, remove => { confirm => { commit => \&commit_dialog, default => \&confirm_dialog, }, default => \&choose_dialog, }, modify => { update => { confirm => { commit => \&commit_dialog, default => \&confirm_dialog, }, default => \&update_dialog, }, default => \&choose_dialog, }, default => \&action_dialog );