{ package Template::Declare::TagSet::Family; use base 'Template::Declare::TagSet'; sub get_tag_list { return [qw(family father mother children girl boy)] } } { package Family::Templates; use base 'Template::Declare'; use Template::Declare::Tags 'Family'; template Kawasaki => sub { family { attr { name => 'Kawasaki' } father { 'Yasushisa' } mother { 'Chizuko' } children { girl { 'Shiori' } boy { 'Yasuka' } boy { 'Kairi' } } } }; } use Template::Declare; Template::Declare->init(roots => ['Family::Templates']); print Template::Declare->show('Kawasaki');