#!/usr/bin/perl $desc=<) { chomp; s/ /\201/g; s// /g; @line = split; @entry = (); $sz = $#line +1; for (my $i = 0; $i < $sz; $i++) { if ($line[$i] eq 'ENTRY') { push (@entry, $line[$i+1]); } if ($line[$i] eq 'FAMILY') { $family = $line[$i+1]; } } if ($#entry > 0) { foreach $f (split("\201", $family)) { $t{$f} = [] if (!defined $t{$f}); if (! member($t{$f}, join(' ', @entry))) { push(@{$t{$f}}, join(' ', @entry)); } } } } foreach $f (keys %t) { print "family=$f\n"; print "desc=$desc{$f}\n"; @e = @{$t{$f}}; $sz = ($#e <= $num) ? $#e+1 : $num+1; for ($i = 0; $i < $sz; $i++) { print "\t", $e[rand($#e+1)], "\n"; } print "\n"; }