| [ ホーム | お知らせ | ソフトウェア | 覚え書き | メール | ->英語 ] |
Perlの覚え書き
| 1. | 記号 |
| 2. | 定数(リテラル) |
| 3. | 文字列 |
| 4. | print文 |
| 5. | 真偽値 |
| 6. | 未定義値 |
| 7. | 配列 |
| 8. | 連想配列(ハッシュ) |
| 9. | 参照(リファレンス) |
| 10. | 無名の配列と連想配列 |
| 11. | グロブ |
| 12. | 組み込み変数 |
| 13. | 標準で使う変数、$_ |
| 14. | printと組み込み変数 |
| 15. | ファイルを開く、閉じる |
| 16. | ファイルの読み書きモード |
| 17. | そのほかのファイルの指定方法 |
| 18. | ファイルの入力、出力、操作 |
| 19. | ファイルハンドルを評価する演算子、<> |
| 20. | ファイルの入出力の例 |
| 21. | ファイルテスト演算子 |
| 22. | 算術演算子 |
| 23. | 論理演算子 |
| 24. | ビット演算子 |
| 25. | 数値比較演算子 |
| 26. | 文字列比較演算子 |
| 27. | 正規表現 |
| 28. | 正規表現で使う記号 |
| 29. | 正規表現などで使う定義済みの変数 |
| 30. | ファイルのパス名をパスとファイル名、拡張子に分割する例 |
| 31. | 正規表現の演算子 |
| 32. | s演算子 |
| 33. | tr演算子 |
| 34. | そのほかの演算子 |
| 35. | 制御文 |
| 36. | サブルーチン |
| 37. | システム関数 |
| 38. | 現在の時刻を取得する例 |
| 39. | 文字列関数 |
| 40. | 書式文字列で使う記号 |
| 41. | 文字コードを確認する例 |
| 42. | 標準入出力のエンコーディング |
| 43. | ファイル入出力のエンコーディング |
| 44. | Jcode、文字コードの変換に使うモジュール |
| 45. | シフトJISを入力してEUC-JPで出力する例 |
| 46. | 改行コードを確認する例 |
| 47. | 言語設定(locale) |
| 48. | バイナリデータの型指定 |
| 49. | 算術関数 |
| $ | 変数 |
| @ | 配列 |
| % | 連想配列 |
| & | サブルーチン |
| * | グロブ |
| '' | 文字列 |
| "" | 文字列、変数の展開とエスケープあり |
| . | 文字列の連結 |
| << | ヒアドキュメント |
| @_ | サブルーチンの実引数の配列 |
| $_ | 入力、パターンマッチなど標準で使う変数 |
| $. | 入力レコードの現在の行番号 |
| $/ | 入力レコードを区切る文字列、標準は"\n" |
| $% | 出力レコードの現在のページ番号 |
| $= | 出力レコードの現在の行番号 |
| $- | 出力レコード、ページ内の残りの行数 |
| $\ | 出力レコードの末尾に追加する文字列、標準は空 |
| $, | 出力フィールドを区切る文字列、標準は空 |
| $" | 配列を文字列に展開するとき要素を区切る文字列、標準は空 |
| $# | 数値を表示するときに使う書式、標準は"%.20g" |
| $~ | 出力時のフォーマット名、標準はハンドル名とおなじ |
| $^ | 出力時のヘッダフォーマット名 |
| $? | 子プロセスの終了コード |
| $! | errnoの値 |
| $0 | スクリプトのファイル名 |
| @ARGV | コマンドライン引数の配列 |
| $ARGV[0] | 最初のコマンドライン引数 |
| $#ARGV | コマンドライン引数の末尾の要素番号 |
| %ENV | 環境変数の連想配列 |
| %SIG | シグナルハンドラの連想配列 |
| STDERR | ファイルハンドル、標準エラー出力 |
| STDIN | ファイルハンドル、標準入力 |
| STDOUT | ファイルハンドル、標準出力 |
| __FILE__ | スクリプトのファイル名 |
| __LINE__ | スクリプトの行番号 |
| 指定 | 読む | 書く | 追加 | 新規 | 上書き |
| filename | ○ | × | × | × | × |
| <filename | ○ | × | × | × | × |
| >filename | × | ○ | × | ○ | ○ |
| >>filename | × | ○ | ○ | ○ | × |
| +<filename | ○ | ○ | × | × | × |
| +>filename | ○ | ○ | × | ○ | ○ |
| +>>filename | ○ | ○ | ○ | ○ | × |
| command| | commandを実行し、その出力をパイプ経由でファイルハンドルを渡す |
| |command | 出力とファイルハンドルをパイプでcommandに渡す |
| - | STDINを開く |
| >- | STDOUTを開く |
| >&0 | STDINを開く |
| >&1 | STDOUTを開く |
| >&2 | STDERRを開く |
| <> | コマンドラインで指定されたファイルを順番に評価、なければ標準入力を評価 |
| $ARGV | コマンドラインで指定したファイル名 |
| ARGV | コマンドラインで指定されたファイルの現在のファイルハンドル |
| -r | 読み込み可能 |
| -w | 書き込み可能 |
| -x | 実行可能 |
| -e | ファイルが存在する |
| -z | ファイルの大きさがゼロ |
| -s | ファイルの大きさ |
| -f | ファイルである |
| -d | ディレクトリである |
| -l | シンボリックリンクである |
| -T | テキストファイルである |
| -B | バイナリファイルである |
| -M | ファイルが修正されてからの日数 |
| -A | ファイルが参照されてからの日数 |
| -C | ファイルが作成されてからの日数 |
| 5 + 2 | 足し算 |
| 5 - 2 | 引き算 |
| 5 * 2 | 掛け算 |
| 5 / 2 | 割り算 |
| 5 % 2 | 5を2で割った余り(=1) |
| 5 ** 2 | 5の2乗(=25) |
| $xx && $yy | 論理積、左辺が偽なら右辺を評価しない |
| $xx and $yy | &&とおなじ |
| $xx || $yy | 論理和、左辺が真なら右辺を評価しない |
| $xx or $yy | ||とおなじ |
| ! $xx | 論理否定 |
| $xx | $yy | $xxと$yyのOR |
| $xx & $yy | $xxと$yyのAND |
| ~$xx | $xxのビットをすべて反転させたもの |
| $xx << 2 | $xxを2ビット左シフト |
| $xx >> 2 | $xxを2ビット右シフト(上位ビットには符号ビットを埋める) |
| $xx == $yy | $xxと$yyが等しければtrue |
| $xx != $yy | $xxと$yyが異なっていればtrue |
| $xx < $yy | $xxが$yyより小さければtrue |
| $xx > $yy | $xxが$yyより大きければtrue |
| $xx <= $yy | $xxが$yyより等しいか小さければtrue |
| $xx >= $yy | $xxが$yyより等しいか大きければtrue |
| ($xx==2) && ($yy==3) | $xxが2、かつ、$yyが3であればtrue |
| ($xx==2) || ($yy==3) | $xxが2、もしくは、$yyが3であればtrue |
| $xx <=> $yy | 比較結果を -1, 0, 1 のいずれかで返す |
| $xx eq $yy | $xxと$yyが等しければ |
| $xx ne $yy | $xxと$yyが異なっていれば |
| $xx lt $yy | $xxが$yyより小さければ |
| $xx gt $yy | $xxが$yyより大きければ |
| $xx le $yy | $xxが$yyより等しいか小さければ |
| $xx ge $yy | $xxが$yyより等しいか大きければ |
| $xx cmp $yy | 比較し、-1, 0, 1 のいずれかで返す |
| /abc/ | 対象(通常は$_)がabcにマッチするか返す |
| /abc/g | 対象がabcにマッチするか何度も繰り返す |
| /abc/i | 対象がabcにマッチするか、大文字と小文字を区別しない |
| s/abc/XYZ/ | 対象がabcにマッチした部分をXYZに置き換える、置き換えた個数を返す |
| tr/ab/AB/ | 対象のaをAにbをBに置き換える、置き換えた文字数を返す |
| . | 改行を除く任意の1文字 |
| * | 直前のパターンに0回以上マッチ |
| + | 直前のパターンに1回以上マッチ |
| ? | 直前のパターンに0回か1回マッチ |
| ^ | 先頭にマッチ |
| $ | 末尾にマッチ |
| \ | メタ文字をエスケープ |
| (r) | パターンをグループ化、パターンrにマッチ |
| [abc] | 文字a/b/cのどれか1文字にマッチ |
| [^abc] | 文字a/b/c以外のどれか1文字にマッチ |
| (r1|r2) | パターンr1かr2にマッチ |
| {N,M} | 直前のパターンにN回以上M回以下マッチ |
| {N,} | 直前のパターンにN回以上マッチ |
| {,M} | 直前のパターンにM回以下マッチ |
| $1,$2,$3,... | ()対にマッチした部分文字列 |
| $& | マッチした部分の文字列 |
| $` | マッチした部分より前の文字列 |
| $' | マッチした部分より後の文字列 |
| $+ | マッチした最後の()対の部分文字列 |
| $xx =~ /正規表現/ | 正規表現にマッチすれば |
| $xx !~ /正規表現/ | 正規表現にマッチしなければ |
| $xx =~ /ABC/ | $xxがABCという文字を含んでいれば |
| $xx !~ /ABC/ | $xxがABCという文字を含んでいなければ |
| $xx =~ s/ABC/DEF/ | $xxに含まれるABCをDEFに置換 |
| $xx =~ s/ABC/DEF/g | $xxに含まれるすべてのABCをDEFに置換 |
| $xx =~ tr/A-Z/a-z/ | $xxの大文字を小文字に変換 |
| $cnt=$xx=~tr/././ | $xxに含まれる"."の数を$cntに代入 |
| g | 置換を繰り返す |
| i | 大文字と小文字を区別しないで探す |
| m | 文字列を複数行として扱う |
| s | ワイドルカードの.を改行にも適用する |
| e | 置換文字列を式として評価する(置換文字列をevalで評価する) |
| ee | 置換文字列を評価した戻り値を評価する |
| c | 検索文字列以外を探す |
| d | 対応する置換文字がない場合はその文字を削除する |
| s | 置換後、重複している文字は削除してひとつだけ残す |
| @xx="ABC"."DEF" | 文字列の連結 |
| @xx=(1..3) | @xx=(1,2,3)とおなじ |
| for(0..5) | for($_=0;$_<=5;$_++)とおなじ |
| print '*' x80; | '*'を80回表示 |
| $xx = ($yy < 5) ? "小" : "大"; | 条件演算子 |
| $xx **= 2; | 代入演算子$xx = $xx ** 2; とおなじ |
| $xx++; | $xxの値を+1 |
| $xx--; | $xxの値を-1 |
| exit(n) | # 終了コードn(省略時は0)で終了 |
| die(s) | # エラー出力にs(省略時は"Died")を表示して終了コード$!で終了 |
| exec(cmd) | # スクリプトを終了してcmdを実行 |
| system(cmd) | # 子プロセスでcmdを実行、戻り値は子プロセスの終了コード |
| sleep(n) | # n秒待つ(省略時は永久に待つ) |
| time | # 現在の時刻を1970/1/1 0:00:00 UTCからの秒数で返す |
| gmtime(n) | # n(省略時はtimeの戻り値)をグリニッジ標準時を表わす配列で返す |
| localtime(n) | # n(省略時はtimeの戻り値)をローカルの時刻を表わす配列で返す |
| $sec | 秒(0-59) |
| $min | 分(0-59) |
| $hour | 時(0-23) |
| $mday | 日(1-) |
| $mon | 月(0-11) |
| $year | 年(1900年が0) |
| $wday | 曜日(0が日曜日、1が月曜日、6が土曜日、7が日曜日) |
| $yday | 今年の元日から数えた日数 |
| $summer | サマータイムなら真 |
| length(s) | 文字列sのバイト数を返す |
| index(s1,s2[,pos]) | 文字列s1のpos番目からs2を探し、最初に見つかった位置を返す |
| rindex(s1,s2[,pos]) | 文字列s1のpos番目からs2を探し、最後に見つかった位置を返す |
| substr(s,pos[,n]) | 文字列sのpos番目からn文字の部分文字列を返す |
| chop(s) | 末尾の1文字を取り除く、除いた1文字を返す |
| chomp(s) | 末尾の改行文字を取り除く、除いた改行文字を返す |
| printf(fmt,list) | listをfmtで書式化して返す |
| sprintf(fmt,list) | listをfmtで書式化して返す |
| crypt(s1,s2) | s2を鍵としてs1を暗号化して返す |
| ord(s) | 文字列の先頭文字のASCIIコードを返す |
| hex(s) | sを16進数表記の文字列して数値化して返す |
| oct(s) | sを8進数表記の文字列して数値化して返す |
| vec(s,pos,w) | 文字列sをwビット幅の整数配列としてpos番目の要素を返す |
| pack(tmp,list) | テンプレートtmpに従いlistをバイナリデータの構造体にする |
| unpack(tmp,s) | 文字列sをテンプレートtmpに従って展開する |
| 記号 | 意味 |
| %c | 文字 |
| %s | 文字列 |
| %d | 10進整数 |
| %e | 浮動小数点数(指数形式) |
| %f | 浮動小数点数(固定小数点形式) |
| %e | 浮動小数点数(コンパクト形式) |
| %o | 8進整数 |
| %x | 16進整数 |
| %X | 16進整数(大文字使用) |
| A | スクリプトのエンコーディング名 |
| B | 標準入力のエンコーディング名、省略したらAとおなじ |
| C | 標準出力のエンコーディング名、省略したらAとおなじ |
| ascii | 日本語の文字がない |
| binary | テキストではない |
| euc | 日本語EUC |
| sjis | シフトJIS |
| jis | JIS(ISO-2022-JP) |
| ucs2 | 生のUnicode(UTF16) |
| utf8 | UTF8 |
| a / A | ASCII文字列(ヌル文字を詰める/空白を詰める) |
| c / C | char / unsigned char |
| s / S | short / unsigned short |
| i / I | int / unsigned int |
| l / L | long / unsigned long |
| n / N | ビッグエンディアンのshort/long |
| v / V | リトルエンディアンのshort/long |
| h / H | 16進文字列(下位ニブルが先/上位ニブルが先) |
| b / B | ビット列(昇順/降順) |
| x / X | ヌル文字 / 1バイト戻る |
| f / d | 浮動小数点数(float/double) |
| @ | 絶対位置までヌル文字で埋める |
| u | uuencodeした文字列 |
| p | 文字列のポインタ |
| 数字 | 直前の型指定を指定した回数繰り返し |
| * | 直前の型指定を残りのすべての要素について繰り返し |
| sin/cos/tan/atan2 | 三角関数、ラジアンで指定 |
| exp(n) | eのn乗 |
| log(v) | eを底とするvの対数 |
| sqrt(v) | vの平方根 |
| int | 小数点以下切り捨て |
| rand(n) | 0からnまでの乱数、nの標準値は1 |
| srand | 乱数の系列を初期化 |