sub _subtract { my( $this, $set, $new ) = @_; my $i = 0; my @remove; foreach my $known (@{$this->{$set}}) { if( $new->covers( $known )) { # remove anything covered by the new subscription unshift(@remove, $i); } $i++; } foreach $i (@remove) { splice(@{$this->{$set}}, $i, 1); } }