Half My Life with Perl

Perl’s role as a “power tool” for text processing and Unix automation is praised for its expressiveness, strong regex integration, and decades-long backward compatibility, which still make it a favorite for one-liners, sysadmin tasks, and quick scripting. At the same time, many note that ecosystems around Python, JavaScript/Node, and modern web frameworks have eclipsed Perl for new application development, especially in areas like web APIs, data science, and third‑party integrations. The conversation highlights a tension between Perl’s tactical productivity and hacker culture on one side, and concerns about readability, maintainability, and shrinking community support on the other, leading some to recommend alternatives like AWK, Ruby, or Python for most newcomers.

Perl as a productivity and text‑processing tool

  • Many describe Perl as a “superpower” for Unix text wrangling, one‑liners, and fast scripting, often replacing days of manual or multi-person effort.
  • Strengths highlighted: tight integration with Unix/POSIX, powerful regex syntax, associative arrays, and the ability to solve complex text problems in very few lines.
  • Some see Perl, awk, sed, jq, and bash as transformative for sysadmin/devops work compared to heavier general-purpose languages.

Ecosystem and CPAN vs modern package managers

  • CPAN is praised as historically unmatched for breadth, obscure libraries, and “batteries included” feel.
  • Others argue that Node/NPM and ecosystems around Python/PHP/JS have surpassed CPAN in current, business‑oriented libraries (APIs, modern file formats, data science).
  • Concern that parts of CPAN are aging or unmaintained as early contributors move on, though Perl’s strong backward compatibility mitigates breakage.

Maintainability, readability, and culture

  • Perl’s terseness and features (regex, implicit $_, sigils, AUTOLOAD, etc.) are seen by fans as expressive and close to how humans describe tasks.
  • Critics stress readability problems, surprising semantics (contexts, references, filehandles), Unicode pitfalls, and “hieroglyphic” code that others rewrite rather than maintain.
  • There’s a recurring debate about “lone-genius” productivity vs team maintainability, and pushback against elitist attitudes toward Python and mainstream tools.

What to learn now for CLI text processing

  • Some recommend learning Perl as a “superset” of awk/sed; others suggest starting with awk because it’s smaller and easier.
  • Several argue that today the gap is smaller: Perl might turn a 100‑line task into 1 line, but modern alternatives often do it in a few clearer lines.
  • Python and Ruby are suggested when tasks grow beyond quick shell pipelines; tools like miller (mlr) are mentioned for structured data formats.

Language features and OO

  • One side claims “it’s all regex”; others point to references, map/grep, pack/unpack, OO frameworks (Moose/Moo), functional patterns, and type systems.
  • Perl’s OO is described as flexible but low‑level; higher‑level libraries make it powerful but also fragmented.
  • Some features (e.g., given/when/smartmatch) are noted as deprecated, illustrating evolution and design reversals.

Web backends and modern usage

  • Perl web frameworks (Mojolicious, Dancer, Catalyst, etc.) are cited as capable for APIs and apps.
  • However, many see PHP/Ruby/Python frameworks as “miles ahead” in ecosystem depth (auth, validation, admin UIs, integrations), reducing Perl’s appeal for new web projects.

Longevity, ubiquity, and decline

  • Perl is praised for scripts that keep running unchanged across OS upgrades, like a “solar calculator.”
  • Counterpoint: some modern Unix systems no longer ship Perl by default; certain domains (e.g., ClickHouse drivers) lack up‑to‑date Perl libraries.
  • Several note that enthusiasm is strongest among those who learned Perl in the 1990s; advice to “learn it while young” is reframed as mostly nostalgia and early‑imprint bias.