=encoding euc-jp =head1 NAME =begin original perlcheat - Perl 5 Cheat Sheet =end original perlcheat - Perl 5 チートシート =head1 DESCRIPTION =begin original This 'cheat sheet' is a handy reference, meant for beginning Perl programmers. Not everything is mentioned, but 195 features may already be overwhelming. =end original この「チートシート」は Perl プログラミングの初心者のためのリファレンスです。 全てについて言及しているわけではありませんが、195 要素というのは 半端ではありません。 =head2 The sheet (チートシート) =begin original 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 /xx ign. 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 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) no backtrack perl -V:ivsize \h horiz.wh.space (?|p|p)branch reset \R linebreak (?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 =end original 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 /xx 空白を無視 * 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) 非バックトラック perl -V:ivsize \h 水平空白 (?|p|p)枝リセット \R 行分割 (?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 環境変数 =head1 ACKNOWLEDGEMENTS =begin original The first version of this document appeared on Perl Monks, where several people had useful suggestions. Thank you, Perl Monks. =end original この文書の最初のバージョンは Perl Monks に現れ、何人かから有用な 提案を頂きました。 Perl Monks、ありがとう。 =begin original 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. =end original 重要な変更を提案してくれただけでなく、いくつの機能が載っているかを 数えてくれ、Perl が Perl のままであることを示すために Perl 6 版を 作ってくれた Damian Conway に特に感謝します。 =head1 AUTHOR Juerd Waalboer <#####@juerd.nl>, with the help of many Perl Monks. =head1 SEE ALSO =over 4 =item * L - the original PM post =item * L - Damian Conway's Perl 6 version =item * L - home of the Perl Cheat Sheet =back =begin meta Translate: SHIRAKATA Kentaro Status: completed =end meta