Подготовительный этап

Для начала работы нам понадобится сервер с установленной и настроенной ОС. Я использую FreeBSD 6.2, поэтому покажу на ее примере.

  1. Создаем jail.
  2. Устанавливаем в jail apache и mod_perl.
  3. Создаем второй jail.
  4. Устанавливаем во второй jail subversion.
  5. Устанавливаем nginx в базовую ОС.

Пример кода

Код на сайте будет оформлен следующим образом:

my $script_name = $ENV{SCRIPT_NAME}; # Создаем переменную $script_name

$functions{ $function_number }->(
    cgi                 => $cgi,
    template_params     => \%template_params,
    server_name         => $ENV{SERVER_NAME},
    server_port         => $ENV{SERVER_PORT},
    script_name         => $script_name,
);
return Apache2::Const::OK;

Еще один фрагмент кода, для теста:

my $file_handle = IO::File->new( q{/home/perl.ginnie.ru/html/articles/00001_01.html}, q{r} );
my @article_lines;
my $code_block_flag = 0;
while ( my $file_line = $file_handle->getline() ) {
    if ($code_block_flag) {
        if ( $file_line =~ m{</p>}io ) {
            $code_block_flag = 0;
        }
        else {
            $file_line = $highlight_engine->format_string($file_line);
            $file_line =~ s{\r?\n}{<br>}og;
        }
    }
    if ( $file_line =~ m{<p class="code">}io ) {
        $code_block_flag = 1;
    }
    push ( @article_lines, $file_line );
}
my $template = HTML::Template->new( filename => q{index.html}, %{$args{template_params}} );
$template->param(
    article    => join( q{}, @article_lines ),
);
print $args{cgi}->header(
    -type       => q{text/html},
    -charset    => q{windows-1251},
);
print $template->output();