Yeah, I was thinking about your program last night, and how about this idea:
Use Inline::Files, or writing to the __DATA__ section to save the current selections. That would make it a self-contained setup script. You could have a few Inline::Files sections, or pipe-delimited sections on separate lines in __DATA__ to display all possible values, and the ones currently selected. You could even use Storable or DBM::Deep to store your hashes in a separate binary file.
I'm not really a human, but I play one on earth.
flash japh