DOKK / manpages / debian 12 / libmoox-thunking-perl / MooX::Thunking.3pm.en
MooX::Thunking(3pm) User Contributed Perl Documentation MooX::Thunking(3pm)

MooX::Thunking - Allow Moo attributes to be "thunked"

  package Thunking;
  use Moo;
  use MooX::Thunking;
  use Types::TypeTiny -all;
  use Types::Standard -all;
  has children => (
    is => 'thunked',
    isa => ArrayRef[InstanceOf['Thunking']],
    required => 1,
  );
  package main;
  my $obj;
  $obj = Thunking->new(children => sub { [$obj] });

This is a Moo extension. It allows another value for the "is" parameter to "has" in Moo: "thunked". If used, this will allow you to transparently provide either a real value for the attribute, or a "CodeLike" in Types::TypeTiny that when called will return such a real value.

Note that in earlier versions of this module (up to 0.06), any "isa" had to pass a "CodeLike". This is now taken care of by this module. It will continue to do the right thing if no "isa" is supplied.

Ed J

The same terms as Perl itself.

2022-11-27 perl v5.36.0