NAME Class::Accessor::Inherited::XS - fast XS inherited accessors SYNOPSIS #install accessors at compile time use Class::Accessor::Inherited::XS inherited => [qw/foo bar/], # here key names are equal to accessor names ; use Class::Accessor::Inherited::XS { inherited => { bar => 'bar_key', foo => 'foo_key', }, }; #or in a Class::Accessor::Grouped-like fashion __PACKAGE__->mk_inherited_accessors('foo', ['bar', 'bar_key']); DESCRIPTION This module provides very fast implementation for 'inherited' accessors, that were introduced in Class::Accessor::Grouped. They give you capability to override values set in a parent class with values set in childs or object instances. Generated accessors are compatible with Class::Accessor::Grouped generated ones. Since this module focuses primary on speed, it provides no capability to have your own per-class getters/setters logic (like overriding get_inherited/set_inherited in Class::Accessor::Grouped). UTF-8 Starting with perl 5.16.0, this module provides full support for UTF-8 method names and hash keys. Before that, you can't distinguish UTF-8 strings from bytes string in method names, only in hash keys. You have been warned. THREADS Though highly discouraged, perl threads are supported by Class::Accessor::Inherited::XS. You may have accessors with the same names pointing to differents keys in different threads, etc. There are no known conceptual leaks. PERFORMANCE Class::Accessor::Inherited::XS is 5-12x times faster than Class::Accessor::Grouped, depending on your usage pattern. Accessing data from a parent in large inheritance chain is still the worst case, but even there Class::Accessor::Inherited::XS beats Class::Accessor::Grouped best-case. You can see some benchmarks by running bench/bench.pl SEE ALSO * Class::Accessor::Grouped * Class::XSAccessor COPYRIGHT AND LICENSE Copyright (C) 2009 by Vladimir Timofeev Copyright (C) 2014 by Sergey Aleynikov This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.