sironekotoroの日記

Perl で楽をしたい

Perl言語プログラミングレッスン[入門編] 付録B CGIプログラミングの例

なるほど

  • やはり一度は組んで動かしてみないとわからないもんだなぁ、と。
  • CGI.pmはparamのハッシュで入力された情報を扱う、と。
  • 買い置きしているPerlの初心者本にもcgiいっぱい出てくると思うんで、おいおい慣れていきたい。
  • そんで、その知見をWAFに生かしていくつもり。
#!/Users/ユーザー名/.plenv/versions/5.16.3/bin/perl -T
use strict;
use warnings;
use CGI;

my $cgi = new CGI;

print $cgi->header;
print $cgi->start_html('FORM SAMPLE');
print $cgi->h1({align => 'center'},'FORM SAMPLE');
print $cgi->hr;

# ----------------------------------------

print $cgi->h2('Form');
print $cgi->startform(
    -method => 'POST',
    -action => 'mycgi.cgi',
    );

print $cgi->h3('name');
print $cgi->textfield(-name => 'myname');

print $cgi->h3('Sex');
print $cgi->radio_group(
    -name => 'mysex',
    -values => ['Male','Female'],
    -default => 'Male',
    -linebreak => 'true',
    );

print $cgi->h3('Language');
print $cgi->checkbox_group(
    -name => 'mylang',
    -value => ['C' , 'C++' , 'Perl' , 'Java' , 'Others'],
    -default => ['C' , 'C++'],
    -linebreak => '',
);

print $cgi->h3('Comment:');
print $cgi->textarea(
    -name => 'mycomment',
    -rows => '5',
    -columns => '40'
);

# ----------------------------------------

print $cgi->br;
print $cgi->submit(-value => 'Send');
print $cgi->reset;

print $cgi->endform;


# ----------------------------------------
print $cgi->hr;
print $cgi->h2('result');
foreach my $key ($cgi->param){
    print $cgi->strong($key);
    print ' = ';
    foreach my $value ($cgi->param($key)){
        print '[',$cgi->strong($value),']';
    }
    print $cgi->br;
}

# ----------------------------------------
print $cgi->end_html;

これで「Perl言語プログラミングレッスン[入門編]」おわり

  • 週末ごとに1章ずつ消化していくような感じだった。
  • Perl入学式である程度把握した後だったので、すんなり入ることが出来た。
  • 練習問題が所々で急所を突く感じだった。
  • 正規表現が奥深くて一回ではとてもとても。