Некоторая цитата из практичного mod_perl
"Обычно один процесс обслуживает много запросов перед завершением, поэтому нельзя использовать блоки END, если ожидается, что они будут что-то делать в конце обработки каждого запроса."
Итак, в моем сценарии a.cgi:
my $flag = 1;
END {
# Value for $flag is undefined, if this script is run under mod_perl.
# END block code only executed when process to handle a.cgi exit.
# I wish to execute some code, just before process to handle a.cgi exit.
if ($flag) {
# clean up code.
}
}
Книга возобновляется $r->register_cleanup(sub { #cleanup } );
Однако,
- Как я могу получить $r в сценарии a.cgi?
- Может ли подпрограмма получить доступ к переменной флага моей области видимости?
- Этот $r->register_cleanup нужно поместить в скрипт cgi? Я хочу, чтобы код очистки выполнялся только для сценария a.cgi. Не остальные.