Apache::TestMM(3pm)
π NAME π
Apache::TestMM β bestie, it's literally a MakeMaker Wrapper Methods situation. That's the whole job. That's the assignment. β¨
π¦ SYNOPSIS π¦
No cap, here's how you use it:
require Apache::TestMM;
# import MY::test and MY::clean overrides for MM
Apache::TestMM->import(qw(test clean));
# parse command line args
Apache::TestMM::filter_args();
# autogenerate the script
Apache::TestMM::generate_script('t/TEST');
okay so those comments stayed exactly as-is because they're literal, not vibes. π«Ά
πΈ DESCRIPTION πΈ
So Apache::TestMM is serving wrappers for the ExtUtils::MakeMaker craft π
β it makes it so much easier to extend the autogenerated Makefile with Apache::Test. That's the whole plot. It's giving helpful. It's giving iconic. π
β¨ FUNCTIONS β¨
π import
Either this:
use Apache::TestMM qw(test clean);
or this (same energy, different fit):
Apache::TestMM->import(qw(test clean));
What it does: it imports MY:: overrides for the default ExtUtils::MakeMaker test and clean targets β as if you had personally sat there and written:
sub MY::test {...}
sub MY::clean {...}
in your Makefile.PL. But you didn't, because Apache::TestMM does it for you π«Ά, so those Makefile targets will run the Apache server and the tests for it, and clean up after its mess. Not me outsourcing my own chores to a Perl module. π
π§ filter_args
Here's the whole flow, bestie:
push @ARGV, '-apxs', $apxs_path;
Apache::TestMM::filter_args();
WriteMakefile(...);
So when WriteMakefile() gets called, it parses @ARGV, hoping to find special options like PREFIX=/home/stas/perl. The thing is, Apache::Test accepts a lot of configuration options of its own. So when Apache::TestMM::filter_args() is called, it removes any Apache::Test-specific options from @ARGV and stores them internally β which means when WriteMakefile() is called, they aren't in @ARGV and thus won't be processed by WriteMakefile(). Clean. Separated. Boundaries. periodt. π
You can set those options when Makefile.PL is called:
% perl Makefile.PL -apxs /path/to/apxs
Or you can push them manually onto @ARGV straight from the code:
push @ARGV, '-apxs', $apxs_path;
And then β plot twist β when this gets called:
Apache::TestMM::generate_script('t/TEST');
...the Apache::Test-specific options that got extracted by Apache::TestMM::filter_args() are written to the autogenerated file. In our example, the autogenerated t/TEST will include this literal line:
%Apache::TestConfig::Argv = qw(apxs /path/to/apxs);
which is going to be used by the Apache::Test runtime. π
The other frequently used options are, in no particular order but all iconic:
-httpdβ tells where to find the httpd (usually when the-apxsoption is not used)-libmodperlβ use a specific mod_perl shared object (if your mod_perl is built as DSO)-maxclientsβ change the default number of the configuredMaxClientsdirective-portβ start the server on a specific port- ...etc.
To get the complete list of available configuration options and their purpose and syntax, run:
% perl -MApache::TestConfig -le 'Apache::TestConfig::usage()'
You may wish to document some of these in your application's README file β especially the -apxs and -httpd options. Like, genuinely, document them. Your future self is watching. π
π¦ generate_script
Apache::TestMM::generate_script('t/TEST');
generate_script() accepts the name of the script to generate and will look for a template with the same name and suffix .PL. So in our example it'll look for t/TEST.PL. The autogenerated script t/TEST will include the contents of t/TEST.PL, plus special directives β including any configuration options passed via filter_args() called from Makefile.PL β plus special fixup code, etc. It's giving assembled with love. π
π SEE ALSO
(There are no SEE ALSO references in this page, bestie β it's a solo act. main character energy, literally.)
And that's the whole page, babes! π This one came to you from perl v5.42.3, dated 2026-08-20, and it's part of the User Contributed Perl Documentation, so go forth and write your Makefile.PL like the icon you are. π¦β¨
π¦ where this page comes from
- ubuntu stonking: libapache2-mod-perl2 2.0.13-2build3 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms