Five tracks · 1987 → open

The programmable web, annotated and sourced.

Every event says what it changed and what survives today. Where we have not confirmed a date or attribution against a primary source, the card says so rather than laundering a guess into a fact.

Send a source for an unverified entry →

Timeline of events

Track
Decade

The chronology runs top to bottom. As you scroll, the rail fills and the marker beside each event turns solid once you have passed it. Filtering by track or decade rewrites the trace in place, and the filtered view is linkable. Nothing here depends on scrolling: with scripting blocked every event is still in the page, in order, with its full annotation.

1980s · Perl 1.0 is posted to Usenet

17 of 17 events

  1. 1980s One language for text, reports and glue
  2. LanguageVerified

    Perl 1.0 is posted to Usenet

    Larry Wall releases Perl 1.0 as a tool sitting between shell scripting and C — report generation, text extraction, and gluing systems together.

    Why it mattered
    It gave sysadmins a single language for the work that previously needed awk, sed, sh and a C program stitched together.
    What remains today
    The design bias is still visible: regular expressions as a first-class construct, and a bias toward getting the job done over ceremony.
  3. 1990s The web arrives and Perl is already installed
  4. CommunityUnverified

    Programming Perl, first edition

    The first substantial book on the language ships, alongside Perl 4.

    Why it mattered
    Documentation, not the interpreter, is what let Perl spread into organisations that had never heard of Usenet.
    What remains today
    The habit of shipping prose with the code — perldoc is still part of the distribution, not an afterthought.
  5. WebUnverified

    CGI takes shape around NCSA httpd

    The Common Gateway Interface convention establishes how a web server hands a request to an external program and reads a response back from standard output.

    Why it mattered
    It made the web writable. Any language that could read environment variables and print to stdout could now serve a dynamic page — and Perl was already on every Unix box.
    What remains today
    The request/response contract survived the transport. PSGI, WSGI, Rack and Servlet are all recognisably the same idea with a better calling convention.
  6. LanguageVerified

    Perl 5.000

    References, modules, packages and a rewritten interpreter core arrive in one release.

    Why it mattered
    Modules made shared code possible, which is the precondition for everything CPAN became a year later.
    What remains today
    Every use statement you write today rests on the package and module system introduced here.
  7. EcosystemVerified

    CPAN goes live

    Jarkko Hietaniemi brings the Comprehensive Perl Archive Network online as a mirrored, indexed archive of modules and distributions.

    Why it mattered
    It is the first widely used language package archive of its kind, and the template most later ecosystems copied.
    What remains today
    The mirror network, the author-namespaced distribution model, and the expectation that a language ships with a way to get other people’s code.
  8. WebUnverified

    mod_perl embeds the interpreter in Apache

    Doug MacEachern’s module puts a persistent Perl interpreter inside the web server process.

    Why it mattered
    It removed the per-request process fork that made CGI slow, and gave Perl access to the server’s own request lifecycle.
    What remains today
    The persistent-process model. Every modern application server — PSGI, WSGI, Rack — assumes the interpreter stays warm between requests.
  9. WebVerified

    Perl 5.004 ships CGI.pm in core

    Lincoln Stein’s CGI.pm becomes part of the standard distribution: parameter parsing, header generation and HTML helpers in one module.

    Why it mattered
    Handwritten form parsers were the single largest source of web security bugs in that era. A shared implementation in core removed a class of them.
    What remains today
    The interface convention. It also became the reference case for why a batteries-included module can outlive its own good idea — see 2015.
  10. 2000s Persistence, packaging, and a successor announced too early
  11. CommunityVerified

    Perl 6 is announced

    A redesign of the language is announced at the Perl Conference, driven by community RFCs.

    Why it mattered
    It set two decades of expectations — and, for a long stretch, drained attention from the language people were actually shipping.
    What remains today
    A hard lesson about naming a successor before it exists. Resolved in 2019 by renaming it Raku and separating the two languages.
  12. LanguageVerified

    Perl 5.10, on Perl’s twentieth birthday

    Named captures, defined-or, say, state variables and a faster regex engine ship exactly twenty years after Perl 1.0.

    Why it mattered
    It ended the assumption that Perl 5 had stopped moving while Perl 6 was designed.
    What remains today
    //, say and named captures are ordinary idioms now. So is the annual release cadence that followed.
  13. WebDate unverified

    PSGI and Plack

    Tatsuhiko Miyagawa specifies PSGI — a request hashref in, a three-element response arrayref out — and ships Plack as the reference toolkit.

    Why it mattered
    It decoupled Perl web applications from the server that runs them, which is the change CGI.pm-era code never made.
    What remains today
    Every current Perl web framework speaks PSGI. It is the single most important interface in modern Perl web work.
  14. 2010s The interface wins, the batteries leave core
  15. WebUnverified

    Mojolicious 1.0

    A real-time web framework with no non-core dependencies, a built-in test framework, and a single-file Mojolicious::Lite mode.

    Why it mattered
    It made the smallest useful Perl web application a legible twelve-line file again — the thing CGI got right — without the CGI execution model.
    What remains today
    Mojolicious::Lite is still the shortest honest path from an idea to a running HTTP service in Perl.
  16. LanguageVerified

    Perl 5.22 removes CGI.pm from core

    After deprecation in 5.20, CGI.pm leaves the standard distribution. It remains installable from CPAN.

    Why it mattered
    Core is a maintenance promise, not a museum. Removing a module that had outlived its execution model was the honest call.
    What remains today
    A great deal of running code that still use CGI; — which is exactly why Script Rescue exists on this site.
  17. LanguageVerified

    Perl 6 “Christmas” release

    The first official language release, fifteen years after the announcement.

    Why it mattered
    It converted an open-ended redesign into a finished, versioned language — and made the naming problem impossible to defer.
    What remains today
    The language, now called Raku. And the clarity that it is a sibling, not a successor.
  18. CommunityVerified

    Perl 6 is renamed Raku

    The community accepts a rename, ending nineteen years of a shared name for two different languages.

    Why it mattered
    It let both projects be described accurately for the first time since 2000.
    What remains today
    Perl means Perl again. When this site says Perl, it means the language that shipped 5.x.
  19. 2020s Answers from inside the language
  20. LanguageVerified

    Perl 5.38 ships an experimental core class

    A native object system enters the language as an experimental feature, alongside the long-established CPAN options.

    Why it mattered
    It is the first serious attempt to answer “which OO system should I use?” from inside the language rather than from CPAN.
    What remains today
    Still experimental. Treat it as a signal about direction, not as a stable target for production code yet.
  21. LanguageVerified

    Perl 5.44.0 becomes the current stable release

    The first production release of the 5.44 series is the stable version recommended by perl.org for new installations.

    Why it mattered
    It establishes the current production baseline while the odd-numbered development branch continues separately.
    What remains today
    perl.org currently recommends 5.44.0; point releases may supersede it and this item must be rechecked.
  22. NowPerlCodersOpen node

    PerlCoders relaunches as an independent publication

    New ownership, new editorial scope: practical Perl, honest language comparisons, web-automation tooling, and a properly sourced history.

    Why it mattered
    The trace does not stop. This node stays open.
    What remains today
    Everything after this is unwritten. Corrections and submissions are how it gets written.

The trace continues ↓ — corrections and submissions are how it gets written.

On verification Six of these seventeen events are marked unverified. That means the claim is plausible and widely repeated, but an editor has not confirmed the date or attribution against a primary source. We show you the state rather than hiding it. If you can point at a primary source for one, that correction closes it.

Historical artifacts appear only with rights metadata.

No event on this Timeline currently displays a scan, screenshot or capture. The content model has a slot for one, and that slot requires a rights holder, a rights status, a source URL and a capture date before the image renders. An artifact without that record is listed as a reference and not shown.