Perlメモ †
Ads
組み込み関数とオペレータ †
- perlfunc - Perl builtin functions
- perlop - Perl operators and precedence
チュートリアルなどのドキュメント †
プラグマ †
- strict - 安全ではないコンストラクトを制限する Perl プラグマ
- warnings - 選択的な警告を調整する Perl プラグマ
- utf8 - ソースコード内に、UTF-8(か、UTF-EBCDIC)を有効/無効にするためのプラグマ
その他モジュール †
テスト †
文字コード関連 †
- Encode - Perl5.8 移行はこのモジュールで文字コードの変換を行う。
- Encode::JP - Encode モジュールが内部的に使うだけなので直接は use しない。ABSTRUCT みてエンコーディング名を確認する。
- Encode::Guess - 文字コードの自動判別を行う。
日時関連 †
- Date::Parse - Apache のログなどに見られる "19/Jan/2004:16:51:50 +0900 という形の文字列を UNIX time に変換する。
- POSIX qw(strftime) - %Y%m%d 等の文字列と localtime で得た配列から日時をデコードしたものを得る
その他 †
Tips&FAQ †
スコープの話で気をつけること †
基本は
- 全ての変数に my を付ける。
- $_ は使わない。
$_ はサブルーチンの中で変更すると、その変更はそのサブルーチンの変更元にも影響するので使わないようにすべし。
- while(<HOGE>) は while(my $line = <HOGE>) とすべし。
- foreach(@hoge) は foreach my $val (@hoge) とすべし。
- s/hoge/fuga/; も同じく、my $tmp = $_; $tmp =~ s/hoge/fuga/ をすべし。
my と local の違い †
- my はそのスコープのみで局所化するする。
- local はそのスコープとそのスコープから呼ばれる関数のスコープまでを局所化する。
基本的には全て my で良い。
あと、$_ を局所化したい場合は、local $_; とする。my $_; はエラーになる。
しかし、そもそも $_ は使わない方がよい。
日本語処理 †
文字コード変換 †
Encode モジュールの from_to メソッドを使う。
文字コード自動判別 †
扱える文字コードの一覧取得 †
use Encode qw(from_to);
@list = Encode->encodings("Encode::JP");
print join("\n", @list);
CSV のパース †
コメント †