[...] sub content { my ($section, $action) = @_; my $subs = { user_index => \&user_index, user_unew => \&user_new, user_uchange => \&user_change, user_udelete => \&user_delete, user_gnew => \&user_new, user_gchange => \&user_change, user_gdelete => \&user_delete, project_index => \&project_index, [...] section_error => \§ion_error }; $tmp = $section."_".$action; if ( exists $subs->{$tmp} ) { $tmp = $subs->{$tmp}; } else { $tmp = $subs->{'section_error'}; $action = $sysmsg{section_error}; } $tmp->( $action ); } sub section_error { $template->param( CONTENT_ERROR => 1 ); $template->param( ERROR_HEADER => shift ); } [...]