sub show_these { my ($dr,$show,$sort) = @_; my $output; if (!$sort) { $sort = sub { my $id = shift; return sort { $a <=> $b } keys %{$dr} } } my (@order) = $sort->($dr); for my $row (@order) { for (@{$show}) { next if !$dr->{$row}{$_}; $output .= qq!$_ = $dr->{$row}{$_} !; } $output .= "\n"; } return $output; }