<div dir="ltr">hi,<br><br>In the strange case of sending a POST request to<br><br><a href="http://localhost:5000/echo?a=1&b=2">http://localhost:5000/echo?a=1&b=2</a><br><br>with the POSTed values b=4 and c=3<br><br>the param() function of dancer will return  1 for a, 3 for c as expected and<br>4 for b.<br><br>So it overrides the b received in the URL by the b received in the POST,<br>but it also supplies the value for a which is only available in the URL.<br><br>On the other hand, if the same key is supplied multiple times in the URL (e.g.<br><a href="http://localhost:5000/echo?a=1&b=2&a=6">http://localhost:5000/echo?a=1&b=2&a=6</a><br>then param('a') will return an array reference.<br><br>I wonder wouldn't it be better to have separate param() functions for values received in the URL and values received in the POST request?<br>Or in other words, could someone explain why was the decision to unite these input channels?<br><br>Gabor<br>ps. This is the code I used:<br><br>package App::Try;<br>use Dancer2;<br><br>our $VERSION = '0.1';<br>use Data::Dumper;<br><br>get '/' => sub {<br>    '<form method="POST" action="/echo?a=1&b=2&a=6"><input name="c" value="3"><input name="b" value="4"><input type="submit">';<br>};<br><br>post '/echo' => sub {<br>    return sprintf "%s - %s - %s", Dumper(param('a')),  param('b'), param('c');<br>};<br><br>true;<br><br></div>