$ENV{'QUERY_STRING'}ではなく、CGI::query_stringでもクエリ文字列が取得できる。
CGI - 簡単なCGI(Common Gateway Interface)クラス - perldoc.jp
ただし、挙動が違うので注意。
まず、受け側のaction.cgiは、
と書く。
GETで送るform_get.htmlは、
と書く。
POSTで送るform_post.htmlは、
と書く。

GETで送信した場合、

URLバーや、$ENV{'QUERY_STRING'}が、パラメータをアンパサンド'&'で繋いでいるのに対し、$q->query_stringはセミコロン';'で繋いでいる。

POSTで送信した場合、

$ENV{'QUERY_STRING'}は空で、$q->query_stringはパラメータをセミコロン';'で繋いでいる。
Sample/perl/CGI/query_string/src/CGI at master · bg1bgst333/Sample · GitHub