名前¶
perlcheat - Perl 5 Cheat Sheet
perlcheat - Perl 5 チートシート
説明¶
This 'cheat sheet' is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 195 features may already be overwhelming.
この「チートシート」は Perl プログラミングの初心者のためのリファレンスです。 全てについて言及しているわけではありませんが、195 要素というのは 半端ではありません。
チートシート¶
CONTEXTS SIGILS ref ARRAYS HASHES
void $scalar SCALAR @array %hash
scalar @array ARRAY @array[0, 2] @hash{'a', 'b'}
list %hash HASH $array[0] $hash{'a'}
&sub CODE
*glob GLOB SCALAR VALUES
FORMAT number, string, ref, glob, undef
REFERENCES
\ reference $$foo[1] aka $foo->[1]
$@%&* dereference $$foo{bar} aka $foo->{bar}
[] anon. arrayref ${$$foo[1]}[2] aka $foo->[1]->[2]
{} anon. hashref ${$$foo[1]}[2] aka $foo->[1][2]
\() list of refs
SYNTAX
OPERATOR PRECEDENCE foreach (LIST) { } for (a;b;c) { }
-> while (e) { } until (e) { }
++ -- if (e) { } elsif (e) { } else { }
** unless (e) { } elsif (e) { } else { }
! ~ \ u+ u- given (e) { when (e) {} default {} }
=~ !~
* / % x NUMBERS vs STRINGS FALSE vs TRUE
+ - . = = undef, "", 0, "0"
<< >> + . anything else
named uops == != eq ne
< > <= >= lt gt le ge < > <= >= lt gt le ge
== != <=> eq ne cmp ~~ <=> cmp
&
| ^ REGEX MODIFIERS REGEX METACHARS
&& /i case insensitive ^ string begin
|| // /m line based ^$ $ str end (bfr \n)
.. ... /s . includes \n + one or more
?: /x ignore wh.space * zero or more
= += last goto /p preserve ? zero or one
, => /a ASCII /aa safe {3,7} repeat in range
list ops /l locale /d dual | alternation
not /u Unicode [] character class
and /e evaluate /ee rpts \b word boundary
or xor /g global \z string end
/o compile pat once () capture
DEBUG (?:p) no capture
-MO=Deparse REGEX CHARCLASSES (?#t) comment
-MO=Terse . [^\n] (?=p) ZW pos ahead
-D## \s whitespace (?!p) ZW neg ahead
-d:Trace \w word chars (?<=p) ZW pos behind \K
\d digits (?<!p) ZW neg behind
CONFIGURATION \pP named property (?>p) no backtrack
perl -V:ivsize \h horiz.wh.space (?|p|p)branch reset
\R linebreak (?<n>p)named capture
\S \W \D \H negate \g{n} ref to named cap
\K keep left part
FUNCTION RETURN LISTS
stat localtime caller SPECIAL VARIABLES
0 dev 0 second 0 package $_ default variable
1 ino 1 minute 1 filename $0 program name
2 mode 2 hour 2 line $/ input separator
3 nlink 3 day 3 subroutine $\ output separator
4 uid 4 month-1 4 hasargs $| autoflush
5 gid 5 year-1900 5 wantarray $! sys/libcall error
6 rdev 6 weekday 6 evaltext $@ eval error
7 size 7 yearday 7 is_require $$ process ID
8 atime 8 is_dst 8 hints $. line number
9 mtime 9 bitmask @ARGV command line args
10 ctime 10 hinthash @INC include paths
11 blksz 3..10 only @_ subroutine args
12 blcks with EXPR %ENV environment
CONTEXTS 印 ref 配列 ハッシュ
無効 $変数 SCALAR @array %hash
スカラ @配列 ARRAY @array[0, 2] @hash{'a', 'b'}
リスト %ハッシュ HASH $array[0] $hash{'a'}
&関数 CODE スカラ値
*グロブ GLOB 数値, 文字列, リファレンス,
FORMAT グロブ, undef
リファレンス
\ リファレンス $$foo[1] は $foo->[1]
$@%&* デリファレンス $$foo{bar} は $foo->{bar}
[] 無名配列ref ${$$foo[1]}[2] は $foo->[1]->[2]
{} 無名ハッシュref ${$$foo[1]}[2] は $foo->[1][2]
\() リストのリファレンス
文法
演算子の優先順位 foreach (LIST) { } for (a;b;c) { }
-> while (e) { } until (e) { }
++ -- if (e) { } elsif (e) { } else { }
** unless (e) { } elsif (e) { } else { }
! ~ \ u+ u- given (e) { when (e) {} default {} }
=~ !~
* / % x 数値 vs 文字列 偽 vs 真
+ - . = = undef, "", 0, "0"
<< >> + . それ以外全て
名前付き単項演算子 == != eq ne
< > <= >= lt gt le ge < > <= >= lt gt le ge
== != <=> eq ne cmp ~~ <=> cmp
&
| ^ 正規表現修飾子 正規表現メタ文字
&& /i 大小文字無視 ^ 文字列先頭
|| // /m ^$ベースの行 $ 文字列末尾;\nの前
.. ... /s .に\nを含む + 1以上
?: /x 空白を無視 * 0以上
= += last goto /p 保存 ? 0か1
, => /a ASCII /aa 安全 {3,7} 範囲の繰り返し
list ops /l ロケール /d 双方 | または
not /u Unicode [] 文字クラス
and /e evalする /ee 反復 \b 単語境界
or xor /g グローバル \z 文字列末尾
/o コンパイル1回 () 捕捉
DEBUG (?:p) 捕捉しない
-MO=Deparse 正規表現文字クラス (?#t) コメント
-MO=Terse . [^\n] (?=p) ZW 正前方
-D## \s 空白 (?!p) ZW 負前方
-d:Trace \w 単語文字 (?<=p) ZW 正後方 \K
\d 数字 (?<!p) ZW 負後方
CONFIGURATION \pP 名前付き特性 (?>p) 非バックトラック
perl -V:ivsize \h 水平空白 (?|p|p)枝リセット
\R 行分割 (?<n>p)名前付き捕捉
\S \W \D \H は逆 \g{n} 名前付き捕捉参照
\K 左の部分を維持
関数の返り値
stat localtime caller 特殊変数
0 dev 0 秒 0 package $_ デフォルト変数
1 ino 1 分 1 filename $0 プログラム名
2 mode 2 時 2 line $/ 入力セパレータ
3 nlink 3 日 3 subroutine $\ 出力セパレータ
4 uid 4 月-1 4 hasargs $| 自動flush
5 gid 5 年-1900 5 wantarray $! sys/libcallエラー
6 rdev 6 曜日 6 evaltext $@ evalエラー
7 size 7 年の日数 7 is_require $$ プロセスID
8 atime 8 夏時間か 8 hints $. 行番号
9 mtime 9 bitmask @ARGV コマンドライン引数
10 ctime 10 hinthash @INC インクルードパス
11 blksz 3..9はEXPR @_ サブルーチン引数
12 blcks の時だけ %ENV 環境変数
謝辞¶
The first version of this document appeared on Perl Monks, where several people had useful suggestions. Thank you, Perl Monks.
この文書の最初のバージョンは Perl Monks に現れ、何人かから有用な 提案を頂きました。 Perl Monks、ありがとう。
A special thanks to Damian Conway, who didn't only suggest important changes, but also took the time to count the number of listed features and make a Perl 6 version to show that Perl will stay Perl.
重要な変更を提案してくれただけでなく、いくつの機能が載っているかを 数えてくれ、Perl が Perl のままであることを示すために Perl 6 版を 作ってくれた Damian Conway に特に感謝します。
作者¶
Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks.
SEE ALSO¶
http://perlmonks.org/?node_id=216602 - the original PM post
http://perlmonks.org/?node_id=238031 - Damian Conway's Perl 6 version
http://juerd.nl/site.plp/perlcheat - home of the Perl Cheat Sheet