• frezik@midwest.social
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    4 days ago

    There’s a built-in feature that Perl has that only a few of the languages claiming PCRE have actually done, and it makes things a lot more readable. The /x modifier lets you put in whitespace and comments. That alone helps a lot if you stick to good indentation practices.

    If all other code was written like an obfuscated C contest, it would be horrible. For some reason, we put up with this on regex, and we don’t have to.

    https://wumpus-cave.net/post/2022/06/2022-06-06-how-to-write-regexes-that-are-almost-readable/index.html

    • balsoft@lemmy.ml
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      4 days ago

      I agree, but then there’s also some other niceties that come from expression parsers in the language itself (as noted in the article): syntax highlighting, LSP, a more complete AST for editors like helix.

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        4 days ago

        Syntax highlighting works fine as long as your language has a way to distinguish regexes from common strings. Another place where Perl did it right decades ago and the industry ignored it.

        • balsoft@lemmy.ml
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          4 days ago

          Nah, the language itself should be as simple as possible. Bloating it with endless extensibility and features is exactly what makes Perl a write-only language in many cases and why it is becoming less and less relevant with time.

          • frezik@midwest.social
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            4 days ago

            Except it has some really good ideas that should be copied. There are other languages that have a syntax for denoting regex, such as ~r'foo' in Elixir. This gets the syntax highlighting you need without a big addition to the language.