> This is the key, in my mind. Objects that lazy load their data > can be a big win in these cases; with a data structure, you have > to do all that fetching, etc in advance. When you have objects > that lazy load other (lazy-loaded) objects, you can (potentially) > save a lot of up-front time when you instantiate your objects.
Well, my objects lazy-load too. In fact, I think my approach is totally compatible with Class::DBI. It's just that I put the retrieved data into a simple data structure before handing it to the templates. That also allows me to add transient data that is useful to the templates but doesn't get stored in the database. - Perrin
