Вам не нужно позволять MooseX :: Storage управлять файловым вводом-выводом только потому, что он доступен. Вы можете использовать его, чтобы упаковать ваши объекты в hashrefs, а затем выгрузить их с помощью YAML или Storable или чего-либо еще. Вот почему MooseX :: Storage различает три уровня сериализации.
Тем не менее, я не согласен с тем, что создание отдельного объекта верхнего уровня, содержащего все другие объекты, которые вы хотите сериализовать в данном контексте, нелегко.