my $template = Template->new(); my $filename = 'output.tex'; $template->process(\*DATA, $data, $filename) || die "Template process failed: ", $template->error(), "\n"; system( "pdflatex $filename" ); __DATA__ \documentclass[a4paper,leqno,twoside]{article} \begin{document} [% FOREACH st IN university %] [% st.name %] [%st.location%] studentdata: [% FOREACH student IN st.branch.electronics.student %] Component type: [%+ student.name +%][%+ student.number +%] [% FOREACH semester IN student.semester %] [%+ semester.number +%] [%+ semester.subjects +%] [%+ semester.rank +%] [% END %] [% END %] [% END %]