sub union_intersection { my ($set1, $set2) = @_; my (%union, %intersection) for my $e (@$set1, @$set2) { ... } ... }