こちらと同じことを Perl で実装しました。
Python3: ファイルのアップロード (cgi)
複数のファイルを同時にアップロードできます。
upload_perl.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>upload perl (Apr/11/2021)</title>
</head>
<body>
<h2>HTML5</h2>
<form method="post" action="upload_perl.pl" enctype="multipart/form-data">
<input type="file" name="files" multiple>
<p><input type="submit" value="送信する"></p>
</form>
<p>Files will be uploaded to /tmp.</p>
<hr />
<p>Apr/11/2021 AM 08:25</p>
</body>
</html>
upload_perl.pl
# ! /usr/bin/perl
use strict;
use utf8;
use warnings;
use CGI;
use File::Copy;
# --------------------------------------------------------------------
my $SAVE_DIR = '/tmp';
my $q = CGI->new;
my @files = $q->param ('files');
print "Content-type: text/html\n\n";
for my $filename (@files)
{
copy($q->tmpFileName($filename), "$SAVE_DIR/$filename") or die $!;
print $filename . "<br />";
}
print "Data is saved<br />";
#
exit;
# --------------------------------------------------------------------