Query: moosex::oneargnew
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
MooseX::OneArgNew(3pm) User Contributed Perl Documentation MooseX::OneArgNew(3pm)NAMEMooseX::OneArgNew - teach ->new to accept single, non-hashref argumentsVERSIONversion 0.002SYNOPSISIn our class definition: package Delivery; use Moose; with('MooseX::OneArgNew' => { type => 'Existing::Message::Type', init_arg => 'message', }); has message => (isa => 'Existing::Message::Type', required => 1); has to => ( is => 'ro', isa => 'Str', lazy => 1, default => sub { my ($self) = @_; $self->message->get('To'); }, ); When making a message: # The traditional way: my $delivery = Delivery->new({ message => $message }); # or my $delivery = Delivery->new({ message => $message, to => $to }); # With one-arg new: my $delivery = Delivery->new($message);DESCRIPTIONMooseX::OneArgNew lets your constructor take a single argument, which will be translated into the value for a one-entry hashref. It is a parameterized role with two parameters: type The Moose type that the single argument must be for the one-arg form to work. This should be an existing type, and may be either a string type or a MooseX::Type. init_arg This is the string that will be used as the key for the hashref constructed from the one-arg call to new. WARNINGS You can apply MooseX::OneArgNew more than once, but if more than one application's type matches a single argument to "new", the behavior is undefined and likely to cause bugs. It would be a very bad idea to supply a type that could accept a normal hashref of arguments to "new".AUTHORRicardo Signes <rjbs@cpan.org>COPYRIGHT AND LICENSEThis software is copyright (c) 2011 by Ricardo Signes. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.12.3 2011-06-15 MooseX::OneArgNew(3pm)
Related Man Pages |
---|
moosex::getopt::gld(3pm) - mojave |
moosex::hasdefaults(3pm) - debian |
moosex::setonce(3pm) - debian |
moosex::types::moose(3pm) - debian |
moosex::types::set::object(3pm) - debian |
Similar Topics in the Unix Linux Community |
---|
Deleting specific lines in a file |
Understanding perl statement |