Hi,
I'm working on an application that uses Mojo::UserAgent to send data to another system, preferably non-blocking.
The code looks something like this (greatly simplified):
sub send_data {
my $data = shift;
my $ua = Mojo::UserAgent->new;
my $request = $ua->post($upload_url => $data) => sub {
my ($ua, $tx) = @_;
post_process($data);
});
return $request;
}
I am concerned that by the time the callback occurs,
$data
will contain something other than what was sent via the POST that sent it, and so the post-processing routine (not shown here) will misbehave.
The response body from the remote system does not contain any context information about the request sent to it; all it returns is a success/fail status and (if successful) the number of items uploaded.
How can I save the value of $data for use by the callback? Is there a mechanism to attach local state information to the $ua->post() which is handed to the callback when it is invoked?
(I can't see any reference to such in the documentation for Mojo::UserAgent.)
Thanks,
Jeremy Begg