# returns a string for a single crossover. The input is a hash ref. sub get_crossover { my ($crossover) = @_; my $episode = $crossover->{'episode'}; my $season = $crossover->{'season'}; my $program = $crossover->{'movie'}; my $cseries = $crossover->{'series'}; my $crossover_text = undef; if ($episode || $season || $program || $cseries) { my $season_text = $season ? "season $season" : undef; my $episode_text = $episode ? textify(qq( "$episode")) : ''; my $search = $cseries ? $cseries : $program ? $program : undef; my $id = $cseries && $series->{$cseries} ? [grep(defined,($program,$season_text))] : $program && $movies->{$program} && $season_text ? [$season_text] : undef; $crossover_text = search_link($search,$id).qq($episode_text); } return $crossover_text; }