Great idea, this was the first module that came to my mind. Also, if you'd like to explore your ideas on "close matching," try subclassing Set::Scalar. It seems like it might be difficult to define a general solution for "almost matching" in terms of sets but you could certainly implement specific solutions easily by adding the methods you want to a subclass of Set::Scalar (and leave the union, symmetric_difference, etc. in the original class definition).
Best of luck. :)