You can use the reduce function to go from an arbitrary number of sets to one set with everything concatenated in it:
my Set @sets = set(<start_ begin_>), set(<center_ base_>), set(<end finish>); my $result = @sets.reduce({ set $^a.keys X~ $^b.keys }); say $result.perl # => Set.new("start_base_end","begin_center_finish","start_center_finish", "start_center_end","start_base_finish","begin_base_end", "begin_center_end","begin_base_finish")
It seems to me clean.
source share