use strict; use warnings; use Set::Scalar; my $A = Set::Scalar->new( qw( a b c ) ); my $B = Set::Scalar->new( qw( b c d ) ); my $C = Set::Scalar->new( qw( c d e ) ); print "A: ", $A->as_string, "\n"; print "B: ", $B->as_string, "\n"; print "C: ", $C->as_string, "\n"; print "relative complement A, B: ", $A->difference( $B )->as_string, "\n"; print "intersection A, B, C: ", $A->intersection( $B, $C )->as_string, "\n"; print "symmetric difference A, B: ", $A->symmetric_difference( $B )->as_string, "\n"; __END__ A: (a b c) B: (b c d) C: (c d e) relative complement A, B: (a) intersection A, B, C: (c) symmetric difference A, B: (a d)