sub getrows { my @records; my $value = param('name'); my $rowid = $ARGV[0] || $value; my %data = (); my @fields = split(/\t/, ); chomp @fields; while() { chomp; my @row = split(/\t/); if ($row[0] eq $rowid) { my %data; @data{@fields} = @row; push @records, \%data; } } close (FILE); print header; for my $ref (@records){ my %data = %$ref; print ul( map { li("$data{$_}") } keys %data); } }