Perl ドキュメント
- Perl のマニュアルページを表示する (
perldoc)perldoc perlドキュメントのリストを表示perldoc XYZXYZ のドキュメントperldoc -f Func組み込み関数のドキュメント
構文/言語仕様
- 論理演算子(短絡演算子)を利用したデフォルト値のイディオム
- 整数リテラル
- 文字列リテラル
- ブール値(真偽値)
- not と ! の結合度の違い
- 数値比較と文字列比較
- 制御構造
- エラー変数
$!について undefとdefined演算子requireで別ファイル(ライブラリ)をインクルードする- パッケージによる名前空間の設定 (
package,our) - 一時的にカレントパッケージを変更する
- 定数を定義する(
constantプラグマ) - リファレンス先のデータの生存期間
配列とリスト
- 配列とリストを定義する
- 配列のサイズを取得する
- 配列のサイズを切り詰める
- 配列の範囲外アクセス
- 配列の末尾の要素を取得する
- 配列に要素を追加する/取り出す
- 配列の要素を
printで出力する - 配列の要素をループで処理する
- 配列をコピーする
- 配列を連結する
- リスト代入
grep演算子によるリスト要素のフィルタリング- 条件に一致するリスト要素の数を調べる
map演算子を使ってリストの各要素を加工したリストを取得する- リストスライス、配列スライス、ハッシュスライス
- 配列へのリファレンスを取得する
- 配列の配列(二次元配列)を作成する
- 配列やリストをソートする
- 配列の添え字に小数を指定するとどうなるか?
- 無名配列コンストラクタ/無名ハッシュコンストラクタ
ハッシュ
- ハッシュを定義する
- キーのリストからハッシュを作成する
- ハッシュのキーや値のリストを取得する
- ハッシュが空かどうか調べる
- ハッシュのサイズを取得する
- ハッシュをコピーする
- ハッシュの要素をループで処理する
- ハッシュをソートする
- ハッシュのキーが存在するか調べる
- ハッシュからキーを削除する
- ハッシュを空にする(ハッシュの要素をすべて削除する)
- ハッシュをリストに展開する
- ハッシュをファイルに保存する(DBMハッシュ)
- ハッシュへのリファレンスを取得する
- 2 つのハッシュを合成する
- (コラム)ハッシュと連想配列
サブルーチン
- サブルーチンの基本
- サブルーチンを可変長引数に対応させる
- サブルーチンがリストコンテキストで呼び出されたか調べる
- サブルーチン内では
exitを使わずにdieを使う - サブルーチンの引数をリファレンスで渡す(参照渡し)
- サブルーチンへのリファレンスを取得する
- 無名サブルーチンを定義する
モジュール
useによるモジュールのインポート- モジュールの検索パスを追加する(
use libプラグマ) - インポート可能なモジュールを作成する
- ディストリビューション用のテンプレートファイルを作成する (
h2xs) - CPAN に登録されたディストリビューションの README ファイルを表示する
- 指定したディレクトリにモジュールをインストールする
- POD フォーマットについて
クラス/オブジェクト
- マニュアルは
perldoc perlobjで - コンストラクタを定義する
- メンバ変数とメンバメソッドを定義する
- クラスを継承する
- デストラクタを定義する
- オブジェクトを明示的に破棄する
- クラスメソッドとしてもインスタンスメソッドとしても使えるメソッドを定義する
- 複数のオブジェクトを一度に作成する
- すべてのクラスの親クラスとして振舞う UNIVERSAL パッケージを拡張する
- あるクラスを継承しているかどうか調べる
- あるメソッドが存在するか調べる
文字列/正規表現
基本的な文字列処理
- 文字列を結合する (
.) - ある文字列を繰り返した文字列を作成する (
x) - 文字列リテラルの中で配列を展開する
- 文字列をデリミタで分割する (
split) - 文字列を1文字ずつに分割する (
split) - リスト要素を結合して1つの文字列にする (
join) - 文字列の末尾の改行を取り除く (
chomp) - 部分文字列の位置を検索する (
index,rindex) - 文字列リテラルを囲むクォート文字に任意の記号を使用する
マッチングと抽出
- 正規表現による文字列マッチングの基本
- 欲張りな量指定子と欲張りでない量指定子による文字列マッチング
- 大文字と小文字を区別しない文字列マッチング
- 行をまたいだ文字列マッチング
- 正規表現パターンにマッチした部分文字列を抜き出す
- インデックス指定で文字列を抜き出す (
substr) - サンプル: インデントされた行、インデントされていない行を抜き出す
置換
- 文字列を置換する
- 文字単位で置換する
- 大文字と小文字を置換する
- インデックス指定で文字列を置換する (
substr) - サンプル: 数値を3桁ごとにカンマを入れて表示する
- サンプル: スクリプトや設定ファイルのコメント(#以降)を削除する
応用
入出力 (I/O)
ファイル・ディレクトリ
- ファイルのオープン・クローズと読み書きの基本
- ファイルがオープンできないとき自動で終了する(
autodieプラグマ) - グロブよってファイル名のリストを取得する (
glob) - ディレクトリハンドルによってファイル名のリストを取得する (
readdir) - 指定したディレクトリ以下のファイルを列挙する (
find) - ディレクトリを作成する
- ファイル・ディレクトリを削除する (
unlink,rmdir) - ファイル名を変更する (
rename) - ファイルを移動する (
rename) - ファイルをコピーする (
copy) - ディレクトリ内のファイルの合計サイズを調べる
- 読み込んでいるファイルの内容を直接変更する(書き戻し編集: in-place editing)
- スクリプトの末尾にテキストデータを埋め込む(埋め込みドキュメント)
- 標準出力 (STDOUT) の出力先をファイルに切り替える
- Config ファイル(
key=valueという行形式のファイル)を読み込むサンプル - ファイルテスト
- パス
プロセス
forkで子プロセスを作成する- あるプロセス ID のプロセスがまだ生きているかを確認する (
kill) - SIGINT シグナル (Ctrl-C) をハンドリングする
- 子プロセス(外部プログラム)への入出力を取り込む(パイプ)
- 子プロセス(外部プログラム)の出力を取り込む(バッククォート文字列)