Changes for version 1.06 - 2026-11-11

  • Add the handles(...) slot modifier: delegate methods to an Object (every method of a role with role:Name), call a CodeRef, or run native ops on an ArrayRef or HashRef; see "Delegation (handles)"
  • slot_info reports has_handles, handles and default_implicit
  • A private attribute is private on every route - reader, writer, clearer, predicate, function-style accessor, inherited and role slots - and callable only from the package that declared it
  • An unterminated '(' in a slot spec croaks instead of dropping the argument's last character
  • Fix an inherited slot losing its readonly, required and coerce checks when its accessor is called as a function
  • Fix a heap overflow when a class is defined again with fewer slots than before
  • Fix a leak when a lazy value fails its type check, and a +attr on a role slot freeing the spec other classes share
  • Add bench/handles.pl, and tests for delegation and private attributes

Modules

objects with prototype chains