Skip to content

Instantly share code, notes, and snippets.

@haarg
Last active April 13, 2016 08:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haarg/fec2e62508eb728b2724bc9d29fbf6ba to your computer and use it in GitHub Desktop.
Save haarg/fec2e62508eb728b2724bc9d29fbf6ba to your computer and use it in GitHub Desktop.
diff --git i/lib/MRO/Compat.pm w/lib/MRO/Compat.pm
index be0fc80..d4c0968 100644
--- i/lib/MRO/Compat.pm
+++ w/lib/MRO/Compat.pm
@@ -360,12 +360,19 @@ =head2 mro::get_pkg_gen($classname)
=cut
{
- my $__pkg_gen = 2;
- sub __get_pkg_gen_pp {
- my $classname = shift;
- die "mro::get_pkg_gen requires a classname" if !defined $classname;
- return $__pkg_gen++;
- }
+ package
+ MRO::Compat::_PL_sub_gen::Tester::Parent;
+ package
+ MRO::Compat::_PL_sub_gen::Tester;
+ our @ISA = 'MRO::Compat::_PL_sub_gen::Tester::Parent';
+}
+
+sub __get_pkg_gen_pp {
+ my $classname = shift;
+ die "mro::get_pkg_gen requires a classname" if !defined $classname;
+ delete ${'MRO::Compat::_PL_sub_gen::Tester::'}{'::ISA::CACHE::'};
+ UNIVERSAL::isa('MRO::Compat::_PL_sub_gen::Tester', 'MRO::Compat::_PL_sub_gen::Tester::Parent');
+ ${*{${'PL_sub_gen::Tester::'}{'::ISA::CACHE::'}}{SCALAR}};
}
sub __get_pkg_gen_c3xs {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment