Perl is the UI.

Perl 1.0 syntax. 2026 runtime. Scalars are state, arrays are collections, subs are components, and the interface follows the data.

LIVE · examples/counter.htmlscalar → event → UI

Change the Perl data. The interface follows.

Load one browser bundle and mount a named view. No JSX, DOM query, JavaScript callback, or new Perl syntax.

hello.html
<script src="https://cdn.jsdelivr.net/npm/perlscript-web/dist/perlscript-web.min.js"></script>
<div id="app"></div>
<script type="text/perl">
$count = 0;
sub increment { $count++; }
sub view {
  begin("button");
  on("click", "increment");
  text("Count: $count");
  end();
}
open APP, ">ui:#app";
mount(APP, "view");
</script>