I was thinking about just this after I wrote the question - please forgive me. all this OO stuff is very new to me. If I call Class::DBI in scalar context it returns either an object or an iterator. But if it is called in list context it will return an array of objects, which I can loop over.
That's where I was getting confused, thanks again perrin