PerlのCGIモジュールでHTMLフォームの表示を行おうとしております。
下記の引用部分でどのようにparamを使ったらよいのでしょうか?
質問の意味も通じるのか不安なのですが、ご教示いただけると助かります。よろしくお願い致します。

  • Windows 7 Professional SP1 64ビット
  • Apache 2.4.29(Win64)
  • Perl v5.24.3
  • Google Chrome バージョン: 63.0.3239.132(Official Build) (64 ビット)

HTML側

<html>
 <head>
    <title>Form Sample</title>
 </head>

  <body>
    <h1>Web Page</h1></body>

    <form action="/cgi/01input.cgi" method="POST" >
        Value 1:<input name="v1" type="text" value=""><br>
        Value 2:<input name="v2" type="text" value="">
        <input type="submit"  value="送信">
    </form>
  </body>
</html>

Perl側

use strict;
use warnings;
use Data::Dumper;
use CGI;

my $cr = "\n" ;
my %in ;
my $alldata ;

if ($ENV{'REQUEST_METHOD'} eq 'POST')
    { read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'});}
   else { $alldata = $ENV{'QUERY_STRING'};}    

foreach my $data (split(/&/, $alldata)) {
    my ($key, $value) = split(/=/, $data);

  $value =~ tr/+//;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg;
  $value =~ s/\t//g;

  $in{"$key"} = $value;
}


my $q = new CGI;

print $q->header();
print $q->start_html(-title=>'test');
print $q->start_form(-method=>'POST',-action=>'02input.cgi');
foreach my $key(sort keys(%in)){
   print "$key:<input type=text name='$key' value=$in{$key}><br>$cr";
}
print $q->end_form;
print $q->end_html;

exit;

***追加
paramで受け取りたいのですが、下記の引用部分をparamでのCGIモジュールの内容に修正し、localhostで見ると、ブランクページとなってしまいます。
htmlソースで見ると下記のとおりの状態となっています。

<body>
<form method="post" action="02input.cgi" enctype="multipart/form-data">
</form>
</body>