Perl

CGI::textfield

HTMLでは、inputタグのtype=textでテキストフィールド(エディットボックス)を出していた。 PerlのCGIモジュールでは、CGI::textfieldを使う。https://pointoht.ti-da.net/e6782591.htmlform.cgiで、name必須って言うけど、無くてもエラーにはならない模様。 …

CGI::MULTIPART

マルチパートの場合は、CGI::MULTIPART。https://pointoht.ti-da.net/e6734582.htmlaction.cgiは、perlコマンドだと、 $ vi action.cgi $ perl action.cgi Content-Type: text/html; charset=ISO-8859-1

CGI::URL_ENCODED

毎回、enctypeに'application/x-www-form-urlencoded'と打つのも大変なので、大抵は指定する時にCGI::URL_ENCODEDという定数を使う。https://pointoht.ti-da.net/e6734582.html(正確にはサブルーチンなのか・・・。) action.cgiを、こうする。 perlコマンド…

CGI::start_form(-action,-enctype)

start_formに-actionと-enctypeを指定した場合は、CGIが分かれるのでまだ楽。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpform.cgiが、で、action.cgiが、となる。 submitするとsubmitすると、 こうなるこうなる。Sample/pe…

CGI::start_form(-enctype)

start_formに-enctypeだけ指定した場合をやる。 POSTのlocalhostのapplication/x-www-form-urlencoded。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpちょっとこれは工夫が要る。 action.cgiを、こうする。 CGI::paramはPOST…

%ENV(REQUEST_METHOD)

$ENV{'REQUEST_METHOD'}で、リクエストのメソッドを取得できる。フォームからの入力を受け取る処理の詳細解説 - Web LibertyENV.cgiを、として、form.htmlを、 <html> <head> <title>ENV#ENV#REQUEST_METHOD</title> </head> <body> <script type="text/javascript"> <!-- // --> </script> <form method="GET" action="/cgi-bin/ENV.cgi"> </form></body></html>

%ENV(CONTENT_LENGTH)

Content-lengthは、$ENV{'CONTENT_LENGTH'}で取得できる。フォームからの入力を受け取る処理の詳細解説 - Web Libertyform.htmlで、POSTにして、 ENV.cgiで、$ENV{'CONTENT_LENGTH'}を出力。 これでsubmitするとこれでsubmitすると、 Content-lengthは23Cont…

read

ファイルを一気に読み込む時は、readを使う。Perlの組み込み関数 read の翻訳 - perldoc.jp read関数 - ファイルからバイト数を指定して読み込み - Perlゼミ - Perl元気塾のPerl講座read.plで、こう書く。 $ vi test.txt $ cat test.txt ABCDE FGHIJ KLMNO $…

ファイルテスト演算子(-s)

ファイルテスト演算子の-sは、ファイルサイズを取得する時に使う。Perl File Test Operators ファイルサイズを取得する - Perlゼミ - Perl元気塾のPerl講座file_test_operators.plで、として、 $ vi file_test_operators.pl $ vi test.txt $ cat test.txt AB…

ファイルテスト演算子(-e)

ファイルに関する情報を取得する場合は、ファイルテスト演算子を使う。Perl File Test Operators ファイルの存在を確認する - Perlゼミ - Perl元気塾のPerl講座 -e <ファイル名> で、指定したファイルが存在するかをチェックする。ifの条件式に置いて、存在…

CGI::start_form(-method,-action,-enctype)

前回のstart_formの引数に、さらに-actionも指定してみる。https://pointoht.ti-da.net/e6730590.htmlつまり、今回はCGIを分ける。 form.cgiは、action.cgiは、とすると、 こっからsubmitでこっからsubmitで、 こうなるこうなる。Sample/perl/CGI/start_form…

CGI::start_form(-method,-enctype)

今回は、-methodで'get'、-enctypeで'application/x-www-form-urlencoded'を指定して、GETで投げてみる。https://pointoht.ti-da.net/e6730590.htmlPOSTの時のみenctypeが有効ってあるが、GETでも'application/x-www-form-urlencoded'は有効でしょ。こうする…

CGI::start_form(-action)

CGI::start_formは、ハッシュ形式で引数を指定できる。 今回は-actionで別の".cgi"ファイルを指定する。https://pointoht.ti-da.net/e6730590.html今回は、まずはform.cgiを用意して、start_formで、キーは-action、値は'action.cgi'とする。 そして、action…

名前付き引数

デフォルト引数として値が設定されているサブルーチンで、特定の値を上書きしたい場合、ハッシュ形式でキーと値を指定するのだが、これは事実上名前付き引数でもある。Perl Tips:名前付き引数とデフォルト値sub.plで、今回は、-value1を'XXX'、-value3を'ZZZ…

デフォルト引数

サブルーチンの引数をハッシュで受け取る方法を応用すると、デフォルト引数を作ることが出来る。Perl Tips:名前付き引数とデフォルト値sub.plで、サブルーチンの中で、デフォルト値の決まったハッシュを作っておいて、実際に引数として渡されたハッシュと突…

keys

keysで指定のハッシュのキー配列を取得する。Perlの組み込み関数 keys の翻訳 - perldoc.jpkeys.plで、こうすると、 $ vi keys.pl $ perl keys.pl key2 key1 key3 $こうなる。 まあforeachなので順番は不定。Sample/perl/keys/keys/src/keys at master · bg1…

ハッシュ引数

引数にハッシュを指定することもできる。サブルーチンの引数 - Perl - ルモーリンsub.plで、1つ目みたいにハッシュ変数で渡すこともできるし、2つ目みたいに直接ハッシュ形式で書いて渡すこともできる。 (今回は2つ目でハイフン('-')の付いたキーを使ってる…

配列引数

引数に配列を指定してそれを受け取る。引数に複数の配列を指定sub.plで、とすると、 $ perl sub.pl 10 20 30 $となる。Sample/perl/sub/array_arguments/src/sub at master · bg1bgst333/Sample · GitHub

CGI::end_form

CGI::end_formはformの終了タグを用意する。https://pointoht.ti-da.net/e6730590.htmlaction.cgiで、と書いて、perlコマンドで実行すると、 $ perl action.cgi Content-Type: text/html; charset=ISO-8859-1

CGI::start_form

CGI::start_formでformの開始タグまで用意する。https://pointoht.ti-da.net/e6730590.htmlaction.cgiで、と書く。 start_formは指定が無い場合は、"POST"で自分自身へのリクエストになる。 perlコマンドでHTML出力を確認すると、 $ perl action.cgi Content…

CGI::param(name)

CGI::paramに引数としてクエリパラメータのキーを渡すと、それをキーとするクエリパラメータの値が取得できる。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpform.htmlで、として、 action.cgiで、とすると、 submitでsubmit…

%ENV(QUERY_STRING)

%ENVで環境変数が取得できるのだから、'QUERY_STRING'を指定すればクエリ文字列を取得できる。入力フォーム編(GETとPOSTデータを受け取るには) - futomi's CGI Cafeform.htmlが、こうで、 ENV.cgiが、こうなら、 これでsubmitすると、これでsubmitすると、…

%ENV

環境変数はハッシュ%ENVに入っている。環境変数を取得・設定する %ENV - Perlゼミ - Perl元気塾のPerl講座 環境変数 - futomi's CGI CafeENV.plで、PATHを出力してみる。 $ perl ENV.pl /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bg1/.local…

CGI::param

key=value形式の場合、CGI::paramを使って、キーと値を取り出す。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jp CGI.pm を使ってみよう - futomi's CGI Cafe引数が無い場合は、キーの配列を返す。 form.htmlで、として、 act…

@ARGV(CGI)

C言語のargvでクエリパラメータを取得できたなら、当然Perlの@ARGVでもクエリパラメータを取得できる。パラメータARGV.cgiで、とすると、 '+'で繋ぐ方式なら取得できる'+'で繋ぐ方式なら取得できる。 key1=value1形式はダメkey1=value1形式はダメ。Sample/pe…

ハイフンを使ったハッシュキー

ハッシュのキーの書き方には'-'(ハイフン)を使ったものもある。Perl-hashes - Dev Guideshash.plで、キーの前に'-'(ハイフン)を付ける。 引用符は要らない。 しかも、文字列で指定したキーと一緒かというと、 $ vi hash.pl $ perl hash.pl value1 value2 val…

CGI::h1(heading)

CGI::h1に見出し文字列を渡すと、h1タグなのでその文字列が大きな見出しとなる。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpCGI.cgiで、とすると、 今度はちゃんと囲んだ文字列が大きくなる今度はちゃんと囲んだ文字列が大…

CGI::h1

CGI::h1で、h1タグを置く。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpCGI.cgiで、こう書くと、 $ vi CGI.cgi $ perl CGI.cgi Content-Type: text/html; charset=ISO-8859-1

CGI::end_html

CGI::end_htmlは、bodyの終了タグ、htmlの終了タグ、を用意する。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jpCGI.cgiは、こう書くと、 こうなる。こうなる。 変わらない。https://github.com/bg1bgst333/Sample/tree/maste…

CGI::start_html(title)

前回は、CGI::start_htmlメソッドに何も渡さなかったので、タイトルが"Untitled Document"になっていた。 CGI::start_htmlメソッドに1つの文字列を渡すと、それがHTMLドキュメントのタイトルになる。CGI - Common Gateway Interface のリクエストとレスポン…