I just wanted to say that it is not guaranteed (AFAIK) that the web browser sends the form fields in the same order as enumerated in the html, or that they even send all of them (when one is unset). That is, you probably can't match a name and a birth date together. You should give the text boxes different names, grouping by entry. HTML::FormFu, particularly HTML::FormFu::Element::Repeatable might help there. (It's a pretty difficult/boring job to do it manually.)
I’ll be damned, RFC 2388 seems to agree that it’s not guaranteed, because it’s left unspecified. Surprising. I do a lot of form introspection and simple CGI::Dump -> email kinds of stuff and I have never noticed any browser sending the fields back in any order other than that of the fields in the page.