sub create_cat_list{ my ($type,$dbh)=@_; my $cat=$dbh->prepare("select ${type}_cat,${type}_id from ${type}_cat order by ${type}_cat"); $cat->execute(); my @list; my %hash; while(my ($catval,$id)=$cat->fetchrow_array()){ push @list, $catval; $hash{$id} = $catval; } $cat->finish(); return [ \%hash,\@list ]; } ## SNIP my $l1=create_cat_list('l1',$dbh); $output.=$q->popup_menu(-name=>'l1_cat',-values=>$l1->[1],-labels=>$l1->[0]); #### $VAR1 = [ { '1' => 'Canadian Paper Money', '2' => 'US Coins', '3' => 'US Paper Money', '4' => 'Supplies', '5' => 'Canadian Coins' }, [ 'Canadian Coins', 'Canadian Paper Money', 'Supplies', 'US Coins', 'US Paper Money' ] ]; ####