Sounds like a great job for Parse::RecDescent, except that you'll still need to give us access to the spec for "an earlier version of the test language". We specifically would need to know string-quoting-thingies that can hide a comma (like Perl's "" or '' or q()) and the nesting-thingies that can hide a comma recursively (like your concat function).
Until you provide that spec, any response here is pure speculation.
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply. | [reply] |