Deine Frage zielt auf den Data Access Layer. Beispiele:
# Austauschbare Layer
my $dal = FastEAV->new( file => 'templates.bin ');
my $dal = MySQLEAV->new( base => 'webdata', tabn => 'templates');
# ansonsten ab $dal immer gleiche Syntax
my $tmpl = $dal->{'/index.html'}{'body'};
Fazit: Wie die Daten abgelegt sind, Datei oder Tabelle und wie die Datei oder die Tabelle aufgebaut ist, spielt im Programmcode keine Rolle mehr. Nach der Qualifizierung eines DAL, sprich Name und ein paar Parameter, ist in der Anwendung der Programmcode immer gleich.
MfG