my @phn = Phones->load($pcode); Phones->show_all; print $q->hidden("hide_phone", @phn); #### Phones->get_param; #### package Phones; my @phones; sub load {i -- Loads phone types and phone numbers for one individual from DB my ($o,$pcode) = @_; my $sel = "select pcode, typephone, phonenumber from phones where pcode = $pcode"; my $ph = main::do_sql ($sel); my @phone; while (my @fld = $ph->fetchrow_array( ) ) { $fld[1] = $fld[1] || 'H'; push(@phone, \@fld); } my @dummy = ($pcode,'H',''); push(@phone, \@dummy); foreach(@phone){ $obj = new($_); push (@phones, $obj); $obj->trace; } return @phones; } sub new{ my (@d) = @_; my $Phone ={ "pid" => $d[0][0], "o_typ" => $d[0][1], "o_phn" => $d[0][2], "n_typ" => $d[0][1], "n_phn" => $d[0][2], "trc" => 'new', }; bless $Phone, 'Phones'; return $Phone; #return object reference } sub get_param{ my @phn = $q->param("hide_phone"); my $a; foreach $a (@phn){ foreach($a){ foreach $obj ($_){ warn "$obj"; ----------line 934 ------------- foreach ($obj){ warn $_; ----- line 936 warn "$_->{'n_typ'}"; ## $_->trace; } } } } } sub show{ my ($r) = $_[0]; my $phn = $r->{'o_phn'}; my $name = $r->{'o_phn'} || $r->{'pid'}; my $typ = "T$name"; my $def = PhoneTypes->translate($r->{'o_typ'}); my @val = split(':',PhoneTypes->list); $r->{'trc'} = "show->name=$typ"; $r->trace; print $q->popup_menu( -name=>$typ, -values=> \@val, -default=>$def); print $q->textfield( -name=>$name, -default=> $phn); print $q->p; } sub show_all{ foreach(@phones){ $_->show; } }