Skip to main content

How to create internal Domain Specific Languages in Perl

von Rolf Langsdorf (‎LanX‎) (

How to create internal Domain Specific Languages in Perl richtet sich an Fortgeschrittene und wird in Deutsch gehalten. Der Talk beginnt am 06.04.2018 um 15:10 Uhr und dauert 40 Minuten. Er findet im Dom statt.


Kurzbeschreibung erst mal auf Englisch, den Talk wollte ich schon letztes mal in Amsterdam halten...


Domain-Specific Languages (DSL) are a popular but controversial topic.

DSLs are small languages, focused on a particular aspect of a software system.

Invented in the LISP world they were later considered a killer feature of Ruby driving its reputation of being intuitive,

In this talk we'll concentrate on "internal DSLs" (contrary to "external DSLs" which just parse and interpret an external sub language like for instance Template::Toolkit with it's own sub language to build HTML)

Internal DSL bend and twist a host language to make it feel like a different one. Being fully embedded they allow to mix in features of the host language without syntax incompatibilities.

For instance does C# provide a build-in query language called LINQ.

Perl as host language provide a big variety of tools to design syntactic sugar, which needs to be mastered.

We will concentrate on the following questions:

- What exactly are internal DSLs
- What are their advantages over other approaches
- How can they be best designed
- What are the down sides and how can they be mitigated
- What are appropriate techniques for their implementation
- Which Perl specifics can be used here

As a practical examples we will design an own internal DSL for SQL.