in reply to YAML + template/reuse

Have a look at Config::Merge (my module). It's purpose is to load configuration trees (ie numerous files in a tree of directories) and to merge them as appropriate into a single hash.

While there is a default merge scheme, there are hooks available which allow you to make the merge as sophisticated as you like. There is also an example included in the distribution of how one might use file names to indicate which configuration overrides to apply based on machine name - you could alter this to be based on server type etc.

Feedback welcome :)

Clint