Perl

unpack

unpackでpackされたバイナリを元に戻す。unpack関数 - パックされたデータを復元する - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説unpack.plで、こう書く。 こうなる。こうなる。Sample/perl/unpack/unpack/src/unpack at master · bg1bgst…

H(pack)

packに'H'を指定すると、渡された16進数文字列を、16進数バイナリに変換する。pack関数 - データをバイナリ形式にパックする - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説pack.plで、そのままの順の長さ2の16進数文字列"1a"を、16進数バイ…

l(pack)

packで'l'を指定ということは、32ビット符号付き整数バイナリを作ること。pack関数 - データをバイナリ形式にパックする - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説pack.plで、今回は"l4"なので、4つの整数を連結し、32ビット符号付き整…

pack

packで指定のフォーマットのバイナリに変換する。pack関数 - データをバイナリ形式にパックする - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説pack.plで、3つの整数を連結し、32ビット符号付き整数バイナリに変換。 "l3"(エル3)のうち、'l'(…

eオプション

eオプションを使うと、ヒットしたパターンに指定した式を適用でき、その式の評価結果に置換する。Perl 正規表現中の変数展開&「e」オプションの使い方 - Perls.plで、数値がみつかったら、それを2倍した値に置換する。 数値が全部2倍になってる。数値が全部…

正規表現のキャプチャグループ

正規表現でマッチしたパターングループごとに$1, $2, ...といった特殊変数に格納される。Perl | マッチした複数の文字列を取得する($1, $2, ..)special_variable.plで、1つのパターングループごとに括弧"()"で閉じる。 ここでは、アルファベット列は$1に、数…

gオプション

s///では、文字列の中で一致する箇所が複数ある場合に、最初だけ置換していた。 gオプションを使うと、一致する箇所全てを置換する。perlre - Perl の正規表現 - perldoc.jp Perlの正規表現をマスターしよう - Perlゼミ|Perlの基礎をインストールからサンプ…

DEFAULT

$SIG{'INT'}などに、'DEFAULT'を設定すると、既定の動作に戻る。Perlの組み込み変数 %SIG の翻訳 - perldoc.jp とほほのperl入門(概要編) - とほほのWWW入門SIG.plで、最初の10秒は'IGNORE'、次の10秒は'DEFAULT'。 最初の10秒はCtrl + Cが無視され、次の1…

IGNORE

$SIG{'INT'}などに、'IGNORE'を設定すると、そのシグナルを無視する。Perlの組み込み変数 %SIG の翻訳 - perldoc.jp とほほのperl入門(概要編) - とほほのWWW入門SIG.plで、とすると、 いくらCtrl + Cを押しても、無視される。いくらCtrl + Cを押しても、…

$SIG{'INT'}

$SIG{'INT'}は、Ctrl + CでSIGINTを送ったときのハンドラを指す。Perlの組み込み変数 %SIG の翻訳 - perldoc.jp とほほのperl入門(概要編) - とほほのWWW入門SIG.plで、とすると、 Ctrl + Cするたびに"handler!"と出るCtrl + Cするたびに"handler!"と出る…

%SIG

%SIGには、シグナルに関する定数やシグナルハンドラが含まれている。Perlの組み込み変数 %SIG の翻訳 - perldoc.jp とほほのperl入門(概要編) - とほほのWWW入門まずは、シグナル'INT'の中身を出力。 SIG.plで、とすると、 空文字列空文字列。 まあ、空文…

サブルーチンのリファレンス

サブルーチンもリファレンスにしたり、デリファレンス出来る。サブルーチンのリファレンス - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説reference.plで、こう書く。 デリファレンスしたサブルーチンに5を渡して実行で50デリファレンスした…

ハッシュのリファレンス

ハッシュのリファレンスを取得し、デリファレンスもする。デリファレンス - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説reference.plで、こう書く。 こちらも取り出せたこちらも取り出せた。Sample/perl/reference/hash_reference/src/refer…

配列のリファレンス

名前の付いてる配列のリファレンスとデリファレンスをちゃんとやってなかったので、今一度やる。デリファレンス - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説reference.plで、こう書く。 ちゃんと各要素を取り出せた。ちゃんと各要素を取り…

exit

exitでPerlスクリプトを途中で中止する。とほほのperl入門(リファレンス編) - とほほのWWW入門exit.plで、入力した数値が0以下なら、中止して10を返す。 こうなるこうなる。【linux】実行したコマンドの戻り値を取得する at softelメモ echo $? 上記のコマ…

sleep

sleepで、指定の秒数休止する。sleep - Perldoc Browser sleep関数 - 指定した時間スリープする - Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説sleep.plに、と書く。 1秒ごとに配列要素を1つ取り出す。 これだとわからないけど、実際には1秒…

CGI::param('POSTDATA')

POSTで送られたデータのContent-typeが、'application/x-www-form-urlencoded'や'multipart/form-data'でない時に限り、CGI::paramに'POSTDATA'という文字列を指定することで、リクエストボディ丸ごと取得できる。CGI - Common Gateway Interface のリクエス…

binmode

binmodeは、C言語で扱ったsetmodeと同じで、指定のファイルハンドルをバイナリモードにする。Perlの組み込み関数 binmode の翻訳 - perldoc.jpまた、Windows上のApacheで試すのだが、今回はPerlのCGIなので、Perlを入れないといけない。Windows版ApacheでCGI…

CGI::upload(uploadedfile)

下の記事にもある通り、CGI::paramでファイル(名?ハンドル?)を取得する方法は古い方法で、安全性に問題があったみたい。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jp https://pointoht.ti-da.net/e6805798.htmlそんなわけ…

CGI::param(uploadedfile)

CGIのアップロード周りに戻ってきた。CGI - Common Gateway Interface のリクエストとレスポンスを扱う - perldoc.jp https://pointoht.ti-da.net/e6805798.htmlマルチパートのファイルアップロードの場合、標準入力STDINからreadで全部読み込むと、マルチパ…

open(my $fh,mode,expr)

ファイルハンドル、現代的な方法。 Perl 5.6からは、openの第1引数にundefな変数が渡されると無名型グロブへのリファレンスを返す。https://pointoht.ti-da.net/e5689400.html ファイルハンドルの概念を理解する - Perlゼミ - Perl元気塾のPerl講座open.plで…

IO::File

ファイルハンドル、5つ目の方法。 IO::Fileは、IO::Handleを継承してるので、ファイルハンドルを生成できる。https://pointoht.ti-da.net/e8904484.html ファイルハンドルの概念を理解する - Perlゼミ - Perl元気塾のPerl講座IO__File.plで、と書く。 $ vi I…

IO::Handle

ファイルハンドル、4つ目の方法。 IO::Handleでもファイルハンドルを生成できる。https://pointoht.ti-da.net/e8883638.html ファイルハンドルの概念を理解する - Perlゼミ - Perl元気塾のPerl講座IO__Handle.plで、と書く。 $ vi IO__Handle.pl $ ls IO__Ha…

ファイルハンドル

ファイルハンドルの概念がわかりにくいので、ちょっと説明。ファイルハンドルの概念を理解する - Perlゼミ - Perl元気塾のPerl講座 ファイルハンドルと出力 - 2部 Perl言語仕様 - [SMART]上記の記事にもあるように、ファイルハンドルは具体的な実体があるわ…

print FILEHANDLE LIST

printにファイルハンドルを渡すことでファイルに出力できる。 その後ろにはリストを指定するのだが、文字列も1つのリスト見なせるので、今回も1つの文字列だけ出力。Perlの組み込み関数 print の翻訳 - perldoc.jpprint.plで、 #!/usr/bin/perl use strict; …

CGI::filefield(-name)

CGI::filefieldに-nameで名前を渡してみる。https://pointoht.ti-da.net/e6805798.htmlaction.cgiで、とすると、 test1.txtを選択して送信でtest1.txtを選択して送信で、 今度はマルチパートでファイルが送られてるみたい・・・。今度はマルチパートでファイ…

CGI::filefield

inputタグのtype=fileは、CGI::filefieldで出せる。https://pointoht.ti-da.net/e6805798.htmlaction.cgiで、とする。 今回はfilefieldに何も指定しない。 そして、ファイルアップロードはマルチパートなので、start_formでも何も指定しない。 perlコマンド…

CGI::submit

inputタグのtype=submitは、CGI::submitで出せる。https://pointoht.ti-da.net/e7005615.htmlaction.cgiで、とする。 perlコマンドだと、 $ perl action.cgi Content-Type: text/html; charset=ISO-8859-1

CGI::textfield(-name,-value)

CGI::textfieldで、-nameで名前、-valueで初期値をセットする。https://pointoht.ti-da.net/e6782591.htmlaction.cgiで、2つのinputタグをtextfieldにして、-nameと-valueをセット。 perlコマンドで、 $ perl action.cgi Content-Type: text/html; charset=I…

CGI::textfield(-value)

CGI::textfieldに-valueで初期値をセットする。https://pointoht.ti-da.net/e6782591.htmlform.cgiで、 -valueで'value1'をセット。 perlコマンドで、 $ perl form.cgi Content-Type: text/html; charset=ISO-8859-1