CGI

  • ポイント
    • :standardすると関数ベースになる。
    • デバッグ用にエラーを表示するには fatalsToBrowser
    • ファイルを転送するには enctype="multipart/form-data
#!/usr/bin/perl

use strict;
use warnings;

use CGI qw/ :standard /;
use CGI::Carp qw(fatalsToBrowser);
use File::Basename;

my %q;
my $query = CGI->new;
foreach my $key ($query->param()) {
        my $val = $query->param($key);
        $q{$key} = $val;
}


my $script = basename $0;
print <<"EOF";
Content-Type: text/html; chaset=utf-8

<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />

<form action="$script" id="form_1" method="post" enctype="multipart/form-data" />
<input type="text" name="text1" id="text1" value="text1value"><br>
<input type="file" name="file1" id="file1" value="file1"><br>
<input type="submit"><br>
</form>
EOF

foreach my $key (keys %q) {
        print "key=$key val=$q{$key}<br>\n";

        my $fh = upload($key);
        if ($fh) {
                print "sendfile!<br>";
        }
}
my $fh = $query->upload('file1');
if ($fh) {
        print "file is!\n";
}

exit 0;