1#line 1 2## 3# name: Module::Package 4# abstract: Postmodern Perl Module Packaging 5# author: Ingy döt Net <ingy@cpan.org> 6# license: perl 7# copyright: 2011 8# see: 9# - Module::Package::Plugin 10# - Module::Install::Package 11# - Module::Package::Tutorial 12 13package Module::Package; 14use 5.005; 15use strict; 16 17BEGIN { 18 $Module::Package::VERSION = '0.26'; 19 $inc::Module::Package::VERSION ||= $Module::Package::VERSION; 20 @inc::Module::Package::ISA = __PACKAGE__; 21} 22 23sub import { 24 my $class = shift; 25 $INC{'inc/Module/Install.pm'} = __FILE__; 26 unshift @INC, 'inc' unless $INC[0] eq 'inc'; 27 eval "use Module::Install 1.01 (); 1" or $class->error($@); 28 29 package main; 30 Module::Install->import(); 31 eval { 32 module_package_internals_version_check($Module::Package::VERSION); 33 module_package_internals_init(@_); 34 }; 35 if ($@) { 36 $Module::Package::ERROR = $@; 37 die $@; 38 } 39} 40 41# XXX Remove this when things are stable. 42sub error { 43 my ($class, $error) = @_; 44 if (-e 'inc' and not -e 'inc/.author') { 45 require Data::Dumper; 46 $Data::Dumper::Sortkeys = 1; 47 my $dump1 = Data::Dumper::Dumper(\%INC); 48 my $dump2 = Data::Dumper::Dumper(\@INC); 49 die <<"..."; 50This should not have happened. Hopefully this dump will explain the problem: 51 52inc::Module::Package: $inc::Module::Package::VERSION 53Module::Package: $Module::Package::VERSION 54inc::Module::Install: $inc::Module::Install::VERSION 55Module::Install: $Module::Install::VERSION 56 57Error: $error 58 59%INC: 60$dump1 61\@INC: 62$dump2 63... 64 } 65 else { 66 die $error; 67 } 68} 69 701; 71 72