in reply to data structure

If you go with the AoH plan (mentioned by GrandFather) it would work nicely with HTML::Template for your "user interface".

One way to keep "track of the changes" would be to use CGI::Session.

As has been mentioned, write some code and let us know how you get on.

Good luck!