in reply to Re^3: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
in thread Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)

There's also Path::Class.

file("foo/bar.txt")->dir->parent->dir("baz")

It's the internal DSL equivalent of the following XPath query:

file('foo/bar.txt')->find('dir()/../baz')

Unfortunately, Path::Class wasn't designed as DSL, so it doesn't have an equivalent of

dir('.')->find('*[file()]')

Replies are listed 'Best First'.
Re^5: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
by LanX (Saint) on Aug 04, 2017 at 22:20 UTC
    Time to quote chromatic :)

    The "Is It a DSL or an API?" Ten Question Checklist

    Not every API is a DSL.

    Otherwise every class allowing cascading method calls would be a DSL.

    It doesn't "read like a conversation" and it has a lot of redundant code, mainly the objects and arrows on the LHS.

    The find examples you've listed are very well designed and could easily be structured in a better readable way, being extended with a DSL frontend.

    here a very good discussion on it

    http://www.infoq.com/news/2007/06/dsl-or-not

    update

    I think I have to correct myself, since Path::Class tries to mimic XPath it should be qualified as DSL if XPath is a language.

    My main problem is that I don't consider XPath to be a particularly good readable.

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    Je suis Charlie!

      and it has a lot of redundant code, mainly the objects and arrows on the LHS.

      That'snotredundant.Spacersarecrucialandcan'tbeomitted.

      Both your CGI::HTML::Functions and Rex examples have more parent-language symbols that the two examples I gave

      My main problem is that I don't consider XPath to be a particularly good readable.

      wut. It's literally the same as a directory path, with the addition of subqueries ([...]) and simple comparison (...=...). I don't know of a simpler, more readable language.

        > I don't know of a simpler, more readable language.

        let's discuss it after YAPC ... :)

        Cheers Rolf
        (addicted to the Perl Programming Language and ☆☆☆☆ :)
        Je suis Charlie!