Example: packing-lists Every program reads packing-lists the same way Every program writes packing-lists the same way So we have one single interface to read packing-lists $plist = OpenBSD::PackingList->read($fh); $plist = OpenBSD::PackingList->fromfile("f"); And one interface to write them. $plist->write($fh); $plist->tofile("f");