mod_perl — додатковий модуль для вебсервера Apache, що інтегрує інтерпретатор мови програмування Perl.
Однією з переваг використання mod_perl є значне (іноді у 200 разів) збільшення пропускної здатності вебсервісів написаних з використанням mod_perl. Це зумовлено тим, що вебсерверу не треба для кожного запиту запускати інтерпретатор Perl, код компілюється одноразово при старті вебсервера.
Також mod_perl забезпечує повний доступ до API вебсервера, що дозволяє програмісту мати доступ до кожного етапу обробки запиту вебсервером. Слід зазначити, що mod_perl надає можливість розробки динамічних конфігураційних файлів вебсервера Apache написаних на Perl, що є досить унікальною особливістю.
Приклад динамічног конфігураційного файлу вебсервера Apache
<Perl> my $host = 'example.net'; push @{$VirtualHost{'*:8080'}}, { ServerName => $host, DocumentRoot => '/var/www/'.$host, PerlSwitches => '-Mlib=/var/www/'.$host.'/lib', PerlOptions => '+Parent -ParseHeaders', Location => { '/' => { SetHandler => 'perl-script', SetInputFilter => 'apreq2', PerlResponseHandler => 'Index' } } }; </Perl>
Приклад обробки запиту для вище зазначеного конфігураційного файлу
package Index; use Apache2::Const qw/OK/; sub handler { my $r = shift; $r->content_type('text/html'); print 'Hello world'; return OK; } 1;