$Data{gen} = {
'beholder' => {b => 1, pg => 21},
'death kiss' => {pg => 21},
...
};
####
sub random
{
my ( $key ) = @_;
my @choices = keys %{$Data{$key}};
my $chosen = $choices[rand @choices];
return $Data{$key}{$chosen}; # or maybe just return $chosen ?
}
####
my $output = my $randomkey = random( "gen" );
####
$output .= " beholder" unless ( exists( $Data{gen}{$randomkey}{b} ));
####
my $addon = '';
if ( exists( $Data{gen}{$randomkey}{bk} ) or
exists( $Data{gen}{$randomkey}{pg} ))
{
$addon = $Data{gen}{$randomkey}{bk} || 'Monstrous Manual';
$addon .= ", page $Data{gen}{$randomkey}{pg}"
if ( exists( $Data{gen}{$randomkey}{pg} ));
}
$output .= " ($addon)" if ( $addon );