The first error is complaining that $item
is not blessed, which, from the code you posted, is not. You apparently blessed the reference to the whole array, which is not the same as blessing the individual array elements. This is not a pedantic distinction, either. The individual elements are hash references and would normally be in a separate class.
Actually, it's not clear from your code whether you need the array to be an object, too. Do you have methods that use the array as a whole? It's perfectly fine to have an array of objects.
Also, this line would never work:
my (@class, $count) = @_;
because all the items in @_ will go to @class and $count will be left undefined. That's one reason you pass references to arrays instead of arrays.