I tried your script and I don't get any missing columns when I add column names and change the == to an =. Remember, you have to name all the columns (including the ones that have no data represented by ",,," in your example data file).
Comment on Re^3: DBD::CSV forgets a column and a row?
Thanks, I didn't realize that a column without a name would not be represented in the output. That's the piece that I truly didn't understand. I named all of my columns and got the output I expected.