use strict; use warnings; #### use strict; use warnings; my @sets = ( [0], [0, 1], [0, 1, 2], [1, 2, 3], [5, 6, 4], ); my @clusters; foreach my $set (@sets) { push @clusters, Set::Scalar->new->insert(@$set); } for my $i (0.. $#clusters) { ... #### 0 superclusters: () : adding (0)... 0 intersections. 1 supercluster: ((0)) : adding (1,2,3)... 0 intersections. 2 superclusters: ((0), (1,2,3)) : adding (0,1)... 2 intersections. 1 supercluster: ((0,1,2,3)) : adding (0,1,2)... 1 intersection.