The problem is not the error, and not necessarily your code, although it seems odd that you say you are loading the contents of the csv file into a hash and are getting dupes. This is a data issue, if you expect to be passing data to mysql table and you have defined keys, they must be unique. Now you can de-dup your data by loading the data into a hash with keys that are the same as you are using in your table which means you will lose records that may or may not matter, very hard to tell since you have been so vague as to what you are doing. If you need all the records then you must determine what makes a unique record and build you keys accordingly.
in reply to Custom DBD error message