[ ホーム | お知らせ | ソフトウェア | 覚え書き | メール | ->英語 ] |
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 | 乱数の系列を初期化 |