On the other hand, if other people need to be able to work with the data, or if there are millions of records, or if I need to do complex queries like "WHERE city = 'this' AND Status LIKE '%that%', it's probably worth the time to put it into a real database.

An in-between approach would be to use a simple CSV file, since it sounds like there aren't that many entries, but to access it as if it were a database using DBD::CSV. It's then readable and treatable like a text file, and can be easily imported into spreadsheets, but you don't have to roll your own searches through the CSV.