Moose::Cookbook::Basics::Immutable

Section: User Contributed Perl Documentation (3)
Updated: 2018-05-16
Page Index
 

NAME

Moose::Cookbook::Basics::Immutable - Making Moose fast by making your class immutable  

VERSION

version 2.2011  

SYNOPSIS

  package Point;
  use Moose;

  has 'x' => ( isa => 'Int', is => 'ro' );
  has 'y' => ( isa => 'Int', is => 'rw' );

  __PACKAGE__->meta->make_immutable;

 

DESCRIPTION

The Moose metaclass API provides a "make_immutable()" method. Calling this method does two things to your class. First, it makes it faster. In particular, object construction and destruction are effectively ``inlined'' in your class, and no longer invoke the meta API.

Second, you can no longer make changes via the metaclass API, such as adding attributes. In practice, this won't be a problem, as you rarely need to do this after first loading the class.  

CONCLUSION

We strongly recommend you make your classes immutable. It makes your code much faster, with a small compile-time cost. This will be especially noticeable when creating many objects.  

AUTHORS

Stevan Little <stevan.little@iinteractive.com>
Dave Rolsky <autarch@urth.org>
Jesse Luehrs <doy@tozt.net>
Shawn M Moore <code@sartak.org>
יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
Karen Etheridge <ether@cpan.org>
Florian Ragwitz <rafl@debian.org>
Hans Dieter Pearcey <hdp@weftsoar.net>
Chris Prather <chris@prather.org>
Matt S Trout <mst@shadowcat.co.uk>
 

COPYRIGHT AND LICENSE

This software is copyright (c) 2006 by Infinity Interactive, Inc.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


 

Index

NAME
VERSION
SYNOPSIS
DESCRIPTION
CONCLUSION
AUTHORS
COPYRIGHT AND LICENSE