1package Class::C3::XS; 2 3use 5.006_000; 4use strict; 5use warnings; 6 7our $VERSION = '0.13'; 8 9=pod 10 11=head1 NAME 12 13Class::C3::XS - XS speedups for Class::C3 14 15=head1 SUMMARY 16 17 use Class::C3; # Automatically loads Class::C3::XS 18 # if it's installed locally 19 20=head1 DESCRIPTION 21 22This contains XS performance enhancers for L<Class::C3> version 230.16 and higher. The main L<Class::C3> package will use this 24package automatically if it can find it. Do not use this 25package directly, use L<Class::C3> instead. 26 27The test suite here is not complete, although it does verify 28a few basic things. The best testing comes from running the 29L<Class::C3> test suite *after* this module is installed. 30 31This module won't do anything for you if you're running a 32version of L<Class::C3> older than 0.16. (It's not a 33dependency because it would be circular with the optional 34dep from that package to this one). 35 36=head1 AUTHOR 37 38Brandon L. Black, E<lt>blblack@gmail.comE<gt> 39 40=head1 LICENSE 41 42This library is free software; you can redistribute it and/or modify 43it under the same terms as Perl itself. 44 45=cut 46 47require XSLoader; 48XSLoader::load('Class::C3::XS', $VERSION); 49 50$VERSION = eval $VERSION; 51 52package # hide me from PAUSE 53 next; 54 55sub can { Class::C3::XS::_nextcan($_[0], 0) } 56 57sub method { 58 my $method = Class::C3::XS::_nextcan($_[0], 1); 59 goto &$method; 60} 61 62package # hide me from PAUSE 63 maybe::next; 64 65sub method { 66 my $method = Class::C3::XS::_nextcan($_[0], 0); 67 goto &$method if defined $method; 68 return; 69} 70 711; 72