We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I'm using an API that can take multiple strings, and returns a result for each string, in the same order as the strings were provided.
Initially I was doing this:
my $form_data = { 'q[]' => \@strings }; my $response = $ua->post_form($url, $form_data, $headers);
But I found that depending on the strings, I wasn't getting the responses back in the expected order.
I just realised that the strings are being sorted, because of this line in www_form_urlencode():
www_form_urlencode()
return join("&", (ref $data eq 'ARRAY') ? (@terms) : (sort @terms) );
So for my case, I can fix it by doing this:
my $form_data = [ 'q[]' => \@strings ];
But I think that for the law of least surprise, I think a better behaviour would be to sort on the keys, but within a key to preserve the order.
The text was updated successfully, but these errors were encountered:
Here's one way to achieve that. In www_form_urlencode():
Change this line:
my @params = ref $data eq 'HASH' ? %$data : @$data;
To:
my @params = ref $data eq 'HASH' ? map { ($_, $data->{$_}) } sort keys %$data : @$data;
And then the final line becomes:
return join("&", @terms);
Sorry, something went wrong.
I'm happy to submit a PR for this, if you're ok with this?
Sorry to take so long to get to this. A PR with tests would be great.
No branches or pull requests
I'm using an API that can take multiple strings, and returns a result for each string, in the same order as the strings were provided.
Initially I was doing this:
But I found that depending on the strings, I wasn't getting the responses back in the expected order.
I just realised that the strings are being sorted, because of this line in
www_form_urlencode()
:So for my case, I can fix it by doing this:
But I think that for the law of least surprise, I think a better behaviour would be to sort on the keys, but within a key to preserve the order.
The text was updated successfully, but these errors were encountered: