Делаю в начале скрипта, одну и те же опрерации, поэтому что бы не мучатся вынес их в модуль, а что бы не передавать переменные по десять раз, использовал такой прием:
модуль:
package WM4::Action;
use strict; use DBI; use Storable;
require Exporter;
our @ISA = qw(Exporter);
our $VERSION = \'1.00\';
sub start_script {
eval {$::site_vars = retrieve(\'./../config/variables.conf\')} || ... ;
$::dbh = \'DBI:mysql:database=\'.$::site_vars->{\'MysqlBase\'} ... ;
...
и просто вызываю в скрипте:
use vars \'$site_vars\', \'$dbh\', ... ;
use WM4::Action; WM4::Action->start_script;
Но когда попытался, такой финт сделать с использованием mod_perl - ошибки не дало, но при этом в модуле не присваивались никакие значения...
Интересно, что даже указание переменных как глобальных, не дало никакого результата... они постоянно "теряются"...
Объявление переменных, и их инициализация непосредственно в конфиге Apache, тоже неичего не принесло положительного...
Просто не хочется возвращать из модуля конкретные значения переменных, т.к. их инициализируется порядка 9-15 штук...
mod_perl 1.29
Apache 1.3.29... (хм, надо бы обновить...)
Perl 5.8.4