CPAN Module Distributions
libguile libraries I was using don't pass the PERL_DL_NONLAZY tests. What I needed to
do was to filter out the PERL_DL_NONLAZY setting but otherwise leave the make test
code in the Makefile as is. To accomplish this, I added a subroutine called MY::test
to the end of my Makefile.PL:
package MY;
sub test {
my $pkg = shift;
my $test = $pkg >SUPER::test(@_); # call the real test() from MY parent
$test =~ s/PERL_DL_NONLAZY=1//g; # filter out PERL_DL_NONLAZY setting
return $test; # return the modified test block
}
This subroutine filters the output of the real test() subroutine and removes the
troublesome PERL_DL_NONLAZY setting. To get a list of subroutines that you can
extend in MY, see the documentation for the ExtUtils::MM_Unix module.
...........................................................................................................................................................................................................................
Alternatives to h2xs
In Perl, there is nearly always more than one way to do any given task, and build
ing a module distribution is no exception. It's a good bet that most of the module
distributions on CPAN were built with h2xs, but that hasn't stopped people from
trying to build better tools.
ExtUtils::ModuleMaker is intended to bring generating module templates into
the 21st century, according to its author, R. Geoffrey Avery. The module offers the
ability to operate from the command line similarly to h2xs or to be called from
a script file to access more advanced functionality. One unique feature of
ExtUtils::ModuleMaker is its ability to generate license text and a full LICENSE
file based on a selection of open source licenses. For more details, see the module
documentation, available on CPAN.
Sean M. Burke's makepmdist script offers an entirely different take on building a
module distribution from h2xs and ExtUtils::ModuleMaker. Instead of generating
templates for you to edit and maintain, it offers a fast path to building a module
distribution from a single module file. You simply give it your module file as an
argument, and out pops a .tar.gz file ready to upload to CPAN. The module file
must be the only module in the distribution, and in order to specify prerequisites
and tests it must adhere to a POD convention specified by makepmdist. However,
for very simple modules it offers a time to upload that just can't be beat! You can
find the script in Sean's author directory on CPAN authors/id/S/SB/SBURKE/.
However, even with these working alternatives some modules require the ser
vices of h2xs. For example, XS modules (introduced in Chapter 9) are only
supported by h2xs. I suggest you learn to use h2xs and then explore these alterna
tives once you're familiar enough to draw your own conclusions.
...........................................................................................................................................................................................................................
12
121
1
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved