Visitor, again
For instance:
package addition is a module Add.pm
visits a packing-list, calling install on each object
for replacement
visit old list for validation
visit new list for validation
visit new list with extract (temporary file)
visit old list with delete
visit new list again with install