Changes for version 0.06 - 2026-06-19

  • New `case PATTERN -> [..] / {..}` destructuring bind: a matching arm can destructure the topic into lexicals private to that arm's block. Supports the full Destructure::Declare grammar (nested patterns, `undef` holes, `//` defaults, trailing `@rest` / `%rest`). The topic is read once into a hidden temp; bindings lower to plain `my $x = $tmp->[i]` statements with no cost until the arm runs. A flat array binding takes a fast path - a single native `my (...) = @{$topic // []}` list-assignment - so it runs at hand-written speed (a constant scrutinee, which can never match a [..] arm, keeps the safe per-element path).
  • The destructuring engine is Destructure::Declare's destructure.h, pulled in at build time via ExtUtils::Depends.

Modules

compile-time, lexically-scoped switch/case