$trans[int(rand($#trans + 1))] #### sub pick { my $aref = shift; return $aref->[int(rand(scalar(@$aref)))]; } #### my %parts = ( det => [qw{the a ninety}], #determiner pro => [qw{it I ya theirs}], # pronoun properNoun => [qw{Alpesh Ann China Beijing}], # proper noun ... #### $parts{adj}->[1] #### pick($parts{adj}); #### sub createNP{ my(@adjp); while ((my$counter = 0) < 100) { $randnum = int(rand(5)+1); if ($randnum == 1) { $randnum = int(rand(2)+1); if ($randnum == 1) #### sub createNP{ my(@adjp); my $counter = 0; while ($counter < 100) { my $outerRN = int(rand(5)+1); if ($outerRN == 1) { my $innerRN = int(rand(2)+1); if ($innerRN == 1) #### $np[$counter] = $pluralNoun[int(rand($#pluralNoun + 1))]; #### push(@np , $pluralNoun[int(rand($#pluralNoun + 1))])