From: Florian Ragwitz Date: Tue, 24 Mar 2009 23:46:44 +0000 (+0100) Subject: Remove README. It's generated by Makefile.PL. X-Git-Tag: 0.10~1 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMRO-Compat.git;a=commitdiff_plain;h=0da55d4d742f05331bea4311fd88af45052262b7 Remove README. It's generated by Makefile.PL. --- diff --git a/README b/README deleted file mode 100644 index 460fef5..0000000 --- a/README +++ /dev/null @@ -1,138 +0,0 @@ -NAME - MRO::Compat - mro::* interface compatibility for Perls < 5.9.5 - -SYNOPSIS - package FooClass; use base qw/X Y Z/; - package X; use base qw/ZZZ/; - package Y; use base qw/ZZZ/; - package Z; use base qw/ZZZ/; - - package main; - use MRO::Compat; - my $linear = mro::get_linear_isa('FooClass'); - print join(q{, }, @$linear); - - # Prints: "FooClass, X, ZZZ, Y, Z" - -DESCRIPTION - The "mro" namespace provides several utilities for dealing with method - resolution order and method caching in general in Perl 5.9.5 and higher. - - This module provides those interfaces for earlier versions of Perl (back - to 5.6.0 anyways). - - It is a harmless no-op to use this module on 5.9.5+. That is to say, - code which properly uses MRO::Compat will work unmodified on both older - Perls and 5.9.5+. - - If you're writing a piece of software that would like to use the parts - of 5.9.5+'s mro:: interfaces that are supported here, and you want - compatibility with older Perls, this is the module for you. - - Some parts of this code will work better and/or faster with - Class::C3::XS installed (which is an optional prereq of Class::C3, which - is in turn a prereq of this package), but it's not a requirement. - - This module never exports any functions. All calls must be fully - qualified with the "mro::" prefix. - - The interface documentation here serves only as a quick reference of - what the function basically does, and what differences between - MRO::Compat and 5.9.5+ one should look out for. The main docs in 5.9.5's - mro are the real interface docs, and contain a lot of other useful - information. - -Functions - mro::get_linear_isa($classname[, $type]) - Returns an arrayref which is the linearized "ISA" of the given class. - Uses whichever MRO is currently in effect for that class by default, or - the given MRO (either "c3" or "dfs" if specified as $type). - - The linearized ISA of a class is a single ordered list of all of the - classes that would be visited in the process of resolving a method on - the given class, starting with itself. It does not include any duplicate - entries. - - Note that "UNIVERSAL" (and any members of "UNIVERSAL"'s MRO) are not - part of the MRO of a class, even though all classes implicitly inherit - methods from "UNIVERSAL" and its parents. - - mro::import - This allows the "use mro 'dfs'" and "use mro 'c3'" syntaxes, providing - you "use MRO::Compat" first. Please see the "USING C3" section for - additional details. - - mro::set_mro($classname, $type) - Sets the mro of $classname to one of the types "dfs" or "c3". Please see - the "USING C3" section for additional details. - - mro::get_mro($classname) - Returns the MRO of the given class (either "c3" or "dfs"). - - It considers any Class::C3-using class to have C3 MRO even before - Class::C3::initialize() is called. - - mro::get_isarev($classname) - Returns an arrayref of classes who are subclasses of the given - classname. In other words, classes who we exist, however indirectly, in - the @ISA inheritancy hierarchy of. - - This is much slower on pre-5.9.5 Perls with MRO::Compat than it is on - 5.9.5+, as it has to search the entire package namespace. - - mro::is_universal($classname) - Returns a boolean status indicating whether or not the given classname - is either "UNIVERSAL" itself, or one of "UNIVERSAL"'s parents by @ISA - inheritance. - - Any class for which this function returns true is "universal" in the - sense that all classes potentially inherit methods from it. - - mro::invalidate_all_method_caches - Increments "PL_sub_generation", which invalidates method caching in all - packages. - - Please note that this is rarely necessary, unless you are dealing with a - situation which is known to confuse Perl's method caching. - - mro::method_changed_in($classname) - Invalidates the method cache of any classes dependent on the given - class. In MRO::Compat on pre-5.9.5 Perls, this is an alias for - "mro::invalidate_all_method_caches" above, as pre-5.9.5 Perls have no - other way to do this. It will still enforce the requirement that you - pass it a classname, for compatibility. - - Please note that this is rarely necessary, unless you are dealing with a - situation which is known to confuse Perl's method caching. - - mro::get_pkg_gen($classname) - Returns an integer which is incremented every time a local method of or - the @ISA of the given package changes on Perl 5.9.5+. On earlier Perls - with this MRO::Compat module, it will probably increment a lot more - often than necessary. - -USING C3 - While this module makes the 5.9.5+ syntaxes "use mro 'c3'" and - "mro::set_mro("Foo", 'c3')" available on older Perls, it does so merely - by passing off the work to Class::C3. - - It does not remove the need for you to call "Class::C3::initialize()", - "Class::C3::reinitialize()", and/or "Class::C3::uninitialize()" at the - appropriate times as documented in the Class::C3 docs. These three - functions are always provided by MRO::Compat, either via Class::C3 - itself on older Perls, or directly as no-ops on 5.9.5+. - -SEE ALSO - Class::C3 - - mro - -AUTHOR - Brandon L. Black, - -COPYRIGHT AND LICENSE - Copyright 2007-2008 Brandon L. Black - - This library is free software; you can redistribute it and/or modify it - under the same terms as Perl itself. -