Как я могу заставить свой код что-то делать после того, как HypnoToad отправит страницу? (Примечание: я отвечаю на свой вопрос. Я публикую это, потому что StackOverflow указал мне на предыдущий вопрос, который не решил мою проблему напрямую, хотя и содержал подсказку, которая мне была нужна.)
Пример кода:
use Mojolicious::Lite;
get "/index" => sub {
my $c = shift;
$c->render("renderThis");
# Do something after rendering
};
app->start('daemon', '-l', 'http://*:8080');
__DATA__
@@ renderThis.html.ep
% layout "template" ;
<h1>Hello World</h1>
@@ layouts/template.html.ep
<!DOCTYPE html>
<html><head></head><body>
%= content
</body></html>
render, кажется, буферизует свой http-вывод и отправляет его после завершения блока кода. Я хочу, чтобы что-то выполнялось после отправки страницы. Буферизацию можно наблюдать, поставив вместо комментария «Сделай что-нибудь» следующее.
sleep 15;
say "Wow, that was a long time!";
У меня win7, поэтому решение только для unix не сработает.