my %options = ( show_reqs => checkbox( -name => 'show_reqids', -checked => 0, -value => 'ON', -label => 'Show requirement IDs?'), date => "Created: " . radio_group( -name=>'bef_since', -values=>['before', 'since'], -default=>'none', -labels => {'before' => 'before ', 'since' => 'since (inclusive)'} ) . "  Date (YYYY-MM-DD): " . textfield(-name=>'date', -size=>10, -maxlength=>10), req_type => "Requirement Type (e.g. BRQ): " . textfield( -name => 'reqtype', -size => 5, -maxlength=>5), ); my %report_types = ( 0 => { name => "Project Requirements: Filtered by Creation Date", opts => ['show_reqs', 'date'], coderef => \&report_type_two }, 1 => { name => "Project Requirement Revisions: Filtered by Creation Date, Type, and Version Reason", opts => ['show_reqs', 'req_type', 'date'], coderef => \&report_type_three}, ); #### my %options = ( show_reqs => sub { my $report = shift; return checkbox( -name => $report . '_show_reqids', -checked => 0, -value => 'ON', -label => 'Show requirement IDs?'), } ); print $options{$option}->($report), "\n";