However you should really put everything below (and including) the line package CART::Validate into a file of it's own (i.e Cart/Validate.pm in one of the paths in @INC) and then your use statement will work fine.
That's actually what I've done and what's causing me problems. The code for CART::Validate is in a separate file. Sorry for the confusion.