In light of my new fascination with DBM::Deep, I've just uploaded Template::Plugin::DBM::Deep, which works like so:
[% USE db = DBM.Deep("my.db" locking = 1 autoflush = 1); db.lock; db.flintstones = { "flintstone" = ["fred" "wilma"] "rubble" = ["barney" "betty"] }; db.castaways = ["gilligan" "skipper" "professor" "and the rest" ]; db.unlock; -%] ... later that day, or in a different process ... [% db.flintstones.rubble.get("0"); %] -- barney [% db.castaways.get("3"); %] -- and the restCool.