What kind of 'well-defined' list data types are you referring to? Can you give an example of how to use them?
On cpan, what modules would you suggest using to solve the given problem?
I find the lacking of concrete information in your post disturbing ...