Я использую Mojolicious :: Lite для объявления маршрутов для веб-сервиса. Может быть, я неправильно понял поведение маршрутов, но если я вызываю подпрограмму в определении маршрутов, она вызывается только один раз .
Я полагаю, что подпрограмма должна срабатывать каждый раз, когда вызывается маршрут веб-сервиса ... что не так.
Например, я написал тестовый маршрут:
use Mojolicious::Lite;
get '/test' => {
text => get_test()
};
sub get_test {
say 'Hello iam only showing up once';
return 'test';
};
Это вывод консоли при запуске сервера и посещении localhost: 3000 / test route:
Здравствуйте, iam появляется только один раз
[2020-04-04 22: 07: 21.09011] [69050] [info] Прослушивание по адресу "http: // *: 3000"
Сервер доступен в http://127.0.0.1: 3000
[2020-04-04 22: 07: 28.26033] [69050] [отладка] [78278b87] GET "/ test"
[2020-04-04 22: 07: 28.26097] [69050] [debug] [78278b87] 200 OK (0,000626s, 1597,444 / с)
«Hello iam, показывающий только один раз», выводится один раз при запуске сервера , Посещение маршрута не вызывает саб снова.
Если это требуемое поведение, как я могу заставить мои маршруты запускать подпрограмму каждый раз, когда посещается маршрут?
Мне это нужно, потому что я использую этот веб-сервис в своем приложении для сканирования сети и возврата результата , И я хочу пересматривать сеть каждый раз, когда вызываю маршрут GET веб-службы. В противном случае данные будут бесполезны, если они не обновлены.
Спасибо за вашу помощь и объяснения.