sub class_own { my ($movie,$season) = @_; warn "class_own: $movie not in database" if !$movies{$movie}; my ($type,$seasons) = split(/:/,$movies{$movie}{format}); my ($trash,$raw_season_num) = split(/ /,$season) if $season; my $season_num = $raw_season_num + 0 if $raw_season_num; my @seasons = $seasons ? eval($seasons) : (); if (($type and !$season) || (grep(/$season_num/,@seasons))) { return qq( $type); } else { return 'none'; } } #### use strict; use warnings; my @courses = qw(salad fish entree oyster dessert); if (@courses > 3) { my @last = splice(@courses,3,-1); my @forks = map { "$_ fork" } @courses; my @knives = map { "$_ knife" } reverse @courses; my $last = grep { /oyster/ } @last ? 'oyster fork' : ''; print 'napkin '.join(' ',@forks).' plate '.join(' ',@knives).' spoon '.$last; }