I got an email today requesting a way to retain duplicate entries in a symmetric difference operation for my Set::Array module. I actually had to go to mathworld to settle a minor debate regarding whether or not duplicates should be included by default. I wasn't sure. Most other people I chatted with weren't sure either. The answer was only unique values, btw.
Anyay, I have to decide if I want to add "bag" equivalents for some of the other set operations or not. For now, I'm inclined to just write a "duplicates()" method and let the programmer deal with it from there.
Oh, I also discovered some inconsistencies with some of the set operations in void context. Damn.