Наверно так.
Попытаюсь объяснить.
Имеется список объектов (торговые точки).
На каждой из точек имеется некий ассортимент товара. По каждой товарной записи из БД выбирается некая статистика для заданного объекта (остаток, заказ, min остаток, max остаток, класс, и т.д.). Выборка этой статистики связанна с выполнением сложного запроса к БД, кроме того нужно дать пользователю возможность сортировать данные в удобном ему порядке и фильтровать не интересующие его. Поэтому я посчитал, что быстрее будет выбрать все данные по всем точкам в скрипт и потом уже отфильтровав и отсортировав отдать пользователю.
То есть нужно создать список объектов (структур данных) которые будут содержать хэши со статистикой по товарам. Если предположить, что эта сложная структура определена, то работа должна выглядеть где-то так:
# @no_obj содержит идентификаторы объектов из базы
# %obj - хэш ссылок на контейнеры со статистикой и дополнительной информацией (нименованием точки и прочим)
foreach $id (@no_obj)
{
$obj{$id}=StatClass->new($id, $name_obj{$id}); #создали контейнер
# Вызваю подпрограмму, которая выбрает статистику по магазину и пытается
# отправить ее контейнеру как-нибудь похоже на
$obj{$id}->AddОстаток($id_товара, $Остаток);
$obj{$id}->AddЗаказ ($id_товара, $Заказ);
.... и так далее
}
Надеюсь понятно объяснил.