That's not a data structure - that's a file layout. A data structure would be an "array" or a "hash of hashes" or an "array of Foo::Bar objects".
Let me explain another way - your program is probably going to look something like:
- Open file
- Read file into some Perl variables
- Close file
- Do something with those Perl variables
- End
Those "Perl variables" are your data structure. Depending on what you want to do with the data in the file, your data structure is going to be different. For instance
- If you want to clean up column2, your data structure is probably going to be an array and you're going to notice column1 only enough to make sure each column2 is correct. You won't actually store column1.
- If you want to load this into a database, your data structure is probably going to be a scalar and an array. You won't actually do anything with the data, so you don't need any special data structure.
- If you want to use this data to drive your application (for instance, it's configuration data determining what commands are possible), your datastructure is probably going to be a "hash of hashes" or a "hash of arrays", depending on how you want to use column2. Column1 would be the key into the outer hash. (This would assume that column1 is unique.)
And, that's just the three examples I could come up with 30 minutes after waking up. Depending on the use, the data structure is completely different while the file layout remains unchanged.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?