The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.80

  • Class::MOP::*
    • Call user_class->meta in fewer places, with the eventual goal of allowing the user to rename or exclude ->meta altogether. Instead uses Class::MOP::class_of. (Sartak)
  • Class::MOP
    • New class_of function that should be used to retrieve a metaclass. This is unlike get_metaclass_by_name in that it accepts instances, not just class names. (Sartak)
  • Class::MOP
    • load_first_existing_class didn't actually load the first existing class; instead, it loaded the first existing and compiling class. It now throws an error if a class exists (in @INC) but fails to compile. (hdp)
  • Class::MOP
  • Class::MOP::Class
    • we had some semi-buggy code that purported to provide a HAS_ISAREV based on whether mro had get_isarev (due to an oversight, it always returned 1). Since mro and MRO::Compat have always had get_isarev, HAS_ISAREV was pointless. This insight simplified the subclasses method by deleting the pure-perl fallback. HAS_ISAREV is now deprecated. (Sartak)

Modules

A Meta Object Protocol for Perl 5
Attribute Meta Object
Class Meta Object
A class to transform Class::MOP::Class metaclasses
Instance Meta Object
Method Meta Object
Method Meta Object for accessors
Method Meta Object for constructors
Abstract base class for generated methods
Method Meta Object for methods with before/after/around modifiers
Module Meta Object
Base class for metaclasses
Package Meta Object
a pragma for installing and using Class::MOP metaclasses