Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

Debian 6.0.6

(Squeeze)

ModPerl::Code(3pm)


ModPerl::Code

ModPerl::Code

NAME
SYNOPSIS
CONSTANTS
NAME
SYNOPSIS
DESCRIPTION
AUTHOR

NAME

$class\::Const − Perl Interface for $class Constants

SYNOPSIS

CONSTANTS

EOF

        my $groups = $data{$class};
        for my $group (sort keys %$groups) {
            print $fh <<"EOF";

":$group"

  use $class\::Const −compile qw(:$group);

The ":$group" group is for XXX constants.

EOF

            for my $const (sort @{ $groups−>{$group} }) {
                print $fh "=head3 C<$class\::$const>\n\n\n";
            }
        }
        print $fh "=cut\n";
    }
}

sub generate_constants_lookup_doc {
my ($data) = @_;

    while (my ($class, $groups) = each %$Apache2::ConstantsTable) {
        my $constants = [map { @$_ } values %$groups];
        constants_lookup_code_doc($constants, $class, $data);
    }
}

sub generate_constants_group_lookup_doc {
my ($data) = @_;

    while (my ($class, $groups) = each %$Apache2::ConstantsTable) {
        constants_group_lookup_code_doc($class, $groups, $data);
    }
}

sub constants_group_lookup_code_doc {
my ($class, $groups, $data) = @_;
my @tags;
my @code;

    while (my ($group, $constants) = each %$groups) {
        $data−>{$class}{$group} = [
            map {
                my @ifdef = constants_ifdef($_);
                s/^($constant_prefixes)_?//o;
                $seen_const{$class}{$_}++;
                $_;
            } @$constants
        ];
    }
}

sub constants_lookup_code_doc {
my ($constants, $class, $data) = @_;

    my (%switch, %alias);
    %alias = %shortcuts;
    my $postfix = lc $class;
    my $package = $class . '::';
    my $package_len = length $package;
    my $func = canon_func(qw(constants lookup), $postfix);
    for (@$constants) {
        if (s/^($constant_prefixes)(_)?//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 = constants_ifdef($alias{$name});
            push @{ $data−>{$class}{other} }, $name
                unless $seen_const{$class}{$name}
        }
    }
}

sub generate_exports {
my ($self, $c_fh) = @_;
require ModPerl::WrapXS;
ModPerl::WrapXS−>generate_exports($c_fh); }

# src/modules/perl/*.c files needed to build APR/APR::* outside # of mod_perl.so sub src_apr_ext {
return map { "modperl_$_" } (qw(error bucket),
map { "common_$_" } qw(util log)); }

1; __END__

NAME

ModPerl::Code − Generate mod_perl glue code

SYNOPSIS

  use ModPerl::Code ();
  my $code = ModPerl::Code−>new;
  $code−>generate;

DESCRIPTION

This module provides functionality for generating mod_perl glue code. Reason this code is generated rather than written by hand include:
consistency
thin and clean glue code
enable/disable features (without #ifdefs)
adapt to changes in Apache
experiment with different approaches to gluing

AUTHOR

Doug MacEachern



ModPerl::Code(3pm)