in reply to handling Perl Persistent Objects
I might be misunderstanding you, but I don't think you are talking about persistence. You wouldn't want your entire CD music library in a persistent object.
All you need is the CD music library as a regular database, and then if you need a persitent object pointing to a prticular CD, you make that 1 CD object persitent - not the whole library.
I.e., when your program ends, you would serialize the object using Data::Dumper or Storable or other. Then, when your program next starts, you decode the serialized object (if it exists) and use that object again. The looping you talk about is quite seperate from the persistence.
$ perldoc perldoc