NAME
$class\::Const - Perl Interface for $class Constants
SYNOPSIS
CCOONNSSTTAANNTTSS EOFmy $groups = $data{$class};
for my $group (sort keys %$groups) {
print $fh <<"EOF";
""::$$ggrroouupp""
use $class\::Const -compile qw(:$group);
The ":$group" group is for XXX constants.
EOFfor my $const (sort @{ $groups->{$group} }) {
print $fh "=head3 C<$class\::$const>\n\n\n";
} }print $fh "=cut\n";
} } sub generateconstantslookupdoc {my ($data) = @;
while (my ($class, $groups) = each %$Apache2::ConstantsTable) {
my $constants = [map { @$ } values %$groups];
constantslookupcodedoc($constants, $class, $data);
} } sub generateconstantsgrouplookupdoc {my ($data) = @;
while (my ($class, $groups) = each %$Apache2::ConstantsTable) {
constantsgrouplookupcodedoc($class, $groups, $data);
} } sub constantsgrouplookupcodedoc {my ($class, $groups, $data) = @;
my @tags; my @code;while (my ($group, $constants) = each %$groups) {
$data->{$class}{$group} = [
map {my @ifdef = constantsifdef($);
s/^($constantprefixes)?//o;
$seenconst{$class}{$}++;
$;
} @$constants
]; } } sub constantslookupcodedoc {my ($constants, $class, $data) = @;
my (%switch, %alias);
%alias = %shortcuts;
my $postfix = lc $class;
my $package = $class . '::';
my $packagelen = length $package;
my $func = canonfunc(qw(constants lookup), $postfix);
for (@$constants) {
if (s/^($constantprefixes)()?//o) {
$alias{$} = join $2 || "", $1, $;
} else {$alias{$} ||= $;
}next unless /^([A-Z])/;
push @{ $switch{$1} }, $;
}for my $key (sort keys %switch) {
my $names = $switch{$key};
for my $name (@$names) {
my @ifdef = constantsifdef($alias{$name});
push @{ $data->{$class}{other} }, $name
unless $seenconst{$class}{$name}
} } } sub generateexports {my ($self, $cfh) = @;
require ModPerl::WrapXS;ModPerl::WrapXS->generateexports($cfh); }
# src/modules/perl/*.c files needed to build APR/APR::* outside # of
modperl.so sub srcaprext {return map { "modperl$" } (qw(error bucket),
map { "common$" } qw(util log)); }
1; ENDNAME
ModPerl::Code - Generate modperl glue code
SYNOPSIS
use ModPerl::Code ();
my $code = ModPerl::Code->new;
$code->generate;
DESCRIPTION
This module provides functionality for generating modperl glue code. Reason this code is generated rather than written by hand include: consistency thin and clean glue codeenable/disable features (without #ifdefs)
adapt to changes in Apache experiment with different approaches to gluing AUTHOR Doug MacEachernperl v5.8.8 2005-10-20 ModPerl::Code(3)