in reply to Class::DBI construct

Do I need to use a DBI call along with the prepare, execute and fetch?

No, you don't have to.

For starters, you don't have to use construct. There are plenty of other means for creating and loading objects.

If you do use construct, it simply allows you to construct an object from a hash or multiple objects from an array of hashes. This includes the AoH returned by $sth->fetchall_hash, but it's not limited to that source. It doesn't need to come from a database at all.