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 rest
Cool.