my @requests; while ( ... ) { push @requests, ...; if (scalar @requests % 3 == 0) { &doRequests(\@requests); } } sub doRequests { my $requests = shift; my @coro = map { async { # here we get LWP::UserAgent object and to request } } @$requests; } #### rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1211417888, 0}, {1211354002, 168413065}) = ? ERESTART_RESTA +RTBLOCK (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- restart_syscall(<... resuming interrupted call ...>) = ? ERESTART_REST +ARTBLOCK (To be restarted) --- SIGWINCH (Window changed) @ 0 (0) --- restart_syscall(<... resuming interrupted call ...>