argra****@users*****
argra****@users*****
2013年 2月 8日 (金) 17:58:06 JST
Index: docs/perl/5.14.1/perldiag.pod diff -u docs/perl/5.14.1/perldiag.pod:1.2 docs/perl/5.14.1/perldiag.pod:1.3 --- docs/perl/5.14.1/perldiag.pod:1.2 Fri Feb 8 15:23:53 2013 +++ docs/perl/5.14.1/perldiag.pod Fri Feb 8 17:58:06 2013 @@ -1840,13 +1840,10 @@ =end original このエラーがヒアドキュメントで起きた場合、閉じタグの前か後に -見えない空白を含んでいるか or there -may not be a linebreak after it. +見えない空白を含んでいるか、その後に改行がないのかもしれません。 よいプログラマ用エディタには、このような文字(または文字がないこと)を探す -助けになる方法が -あります。 +助けになる方法があります。 ヒアドキュメントに関する完全な詳細については L<perlop> を参照してください。 -(TBT) =item Can't find Unicode property definition "%s" @@ -2296,7 +2293,7 @@ =end original (F) 左辺値コンテキストとして使うサブルーチンは、そのように -宣言しなければなりません; +宣言しなければなりません。 L<perlsub/"Lvalue subroutines"> を参照してください。 =item Can't msgrcv to read-only var @@ -2945,8 +2942,7 @@ =end original -Note that non-alphabetic ASCII characters are discouraged here as well. -(TBT) +非英字 ASCII 文字も非推奨であることに注意してください。 =item Character in 'C' format wrapped in pack @@ -3226,8 +3222,7 @@ =end original -(W utf8, non_unicode) You had a code point above the Unicode maximum of U+10FFFF. -(TBT) +(W utf8, non_unicode) Unicode の最大である U+10FFFF を超えた符号位置です。 =begin original @@ -3256,7 +3251,8 @@ =end original None of the Unicode or Perl-defined properties will match a non-Unicode -code point. For example, +code point. +例えば、 (TBT) chr(0x7FF_FFFF) =~ /\p{Any}/ @@ -4732,14 +4728,7 @@ =item Having no space between pattern and following word is deprecated -=begin original - -(D syntax) - -=end original - (D syntax) -(TBT) =begin original @@ -9018,7 +9007,7 @@ 等価になります。 これはおそらく望んでいるものではないでしょう。 (もし本当にこのように書きたいのなら、警告を無効にするか、あるいは -よりよいのはかっこを明示的に使って C<$x & ($y == 0)> と書きます。) +よりよいのはかっこを明示的に使って C<$x & ($y == 0)> と書きます)。 =item Possible unintended interpolation of $\ in regex @@ -9985,7 +9974,7 @@ (F) お使いになった正規表現の拡張は、意味をなしません。 <-- HERE で正規表現のどこに問題が発見されたかを示しています。 -discovered. This happens when using the C<(?^...)> construct to tell +This happens when using the C<(?^...)> construct to tell Perl to use the default regular expression modifiers, and you redundantly specify a default modifier. その他の理由については、L<perlre> を参照してください。 @@ -11446,8 +11435,7 @@ =end original (F) (?(condition)if-clause|else-clause) 構文の条件部が不明です。 -The condition must be one of the following: -(TBT) +条件は以下の一つでなければなりません: (1) (2) ... true if 1st, 2nd, etc., capture matched (<NAME>) ('NAME') true if named capture matched Index: docs/perl/5.14.1/perlguts.pod diff -u docs/perl/5.14.1/perlguts.pod:1.1 docs/perl/5.14.1/perlguts.pod:1.2 --- docs/perl/5.14.1/perlguts.pod:1.1 Tue Sep 11 19:07:06 2012 +++ docs/perl/5.14.1/perlguts.pod Fri Feb 8 17:58:06 2013 @@ -81,7 +81,7 @@ =end original -Perl はまた、二つの特殊な typedef である I32 と I16 を使っています。 +Perl はまた、二つの特殊な typedef である I32 と I16 を使っています; これらはそれぞれ、常に最低 32bit、16bit の長さを持っているものです。 (再び、同様に U32 と U16 もあります。) これらは普通は正確に 32 ビットと 16 ビットですが、Cray では両方とも @@ -209,16 +209,13 @@ =end original -C<sv_vsetpvfn> は C<vsprintf> と同じようなものですが、 -可変引数リストに対するポインタか -SV の配列のアドレスと長さのいずれかを指定することができます。 -最後の引数はブール値を指し示します。 -関数から返ってきたときに -これが true であれば、フォーマット文字列としてロカール固有の -情報が使われているのでその文字列の内容は信頼するできないことを -表わしています(L<perlsec> を参照)。 -ロカールに関する情報が重要でないのなら、 -このポインタは NULL であってもかまいません。 +C<sv_vsetpvfn> は C<vsprintf> と同じようなものですが、可変引数リストに対する +ポインタか SV の配列のアドレスと長さのいずれかを指定することができます。 +最後の引数はブール値を指し示します; 関数から返ってきたときにこれが +true であれば、フォーマット文字列としてロカール固有の情報が使われているので +その文字列の内容は信頼するできないことを表わしています(L<perlsec> を参照)。 +ロカールに関する情報が重要でないのなら、このポインタは NULL であっても +かまいません。 この関数はフォーマットの長さを要求していることに注意してください。 =begin original @@ -598,8 +595,8 @@ =end original 生成した SV を解放するためには、C<SvREFCNT_dec(SV*)> を呼びます。 -普通は、この呼び出しは必要ありません。 -L<Reference Counts and Mortality> を参照してください。 +普通は、この呼び出しは必要ありません(L<Reference Counts and Mortality> を +参照してください)。 =head2 Offsets @@ -711,10 +708,9 @@ 自分で保持しているスカラの型を決定する通常の方法は、マクロ C<Sv*OK> を 使うものでした。 -スカラは数値にも文字列にもなり得ますから、普通、 -これらのマクロはいつも真を返します。 -そして C<Sv*V> マクロを呼ぶことで、 -文字列から整数/倍精度、整数/倍精度から文字列への変換を行ないます。 +スカラは数値にも文字列にもなり得ますから、普通、これらのマクロはいつも真を +返します; そして C<Sv*V> マクロを呼ぶことで、文字列から整数/倍精度、 +整数/倍精度から文字列への変換を行ないます。 =begin original @@ -724,7 +720,7 @@ =end original もし、本当に SV にあるのが整数か、倍精度か、文字列ポインタかを -知りたいのであれば、 +知りたいのであれば、以下のようなマクロを代わりに使えます: SvIOKp(SV*) SvNOKp(SV*) @@ -737,7 +733,6 @@ =end original -というマクロを代わりに使うことができます。 これらのマクロは、実際に SV に入っているものが整数か、倍精度か、 文字列ポインタかを教えてくれます。 "p" はプライベートの意味です。 @@ -813,7 +808,8 @@ =end original -いったん AV が生成されると、AV に対して、 +いったん AV が生成されると、AV に対して、以下のような操作が行えます: + void av_push(AV*, SV*); SV* av_pop(AV*); @@ -829,7 +825,6 @@ =end original -といった操作が行えます。 これらは、C<av_unshift> を除いては、お馴染みの演算でしょう。 C<av_unshift> は、配列の先頭に C<num> 個の C<undef> 値の要素を付け加えます。 その後で、(後述する) C<av_store> を使って新しい要素に値を @@ -936,7 +931,7 @@ =end original -HV を生成するには、 +HV を生成するには、以下のようなルーチンを使います: HV* newHV(); @@ -946,8 +941,7 @@ =end original -というルーチンを使います。 -いったん HV が生成されると HV に対して、 +いったん HV が生成されると HV に対して以下のような操作が行えます: SV** hv_store(HV*, const char* key, U32 klen, SV* val, U32 hash); SV** hv_fetch(HV*, const char* key, U32 klen, I32 lval); @@ -965,7 +959,6 @@ =end original -という操作が行えます。 引数 C<klen> は、渡される key の長さです (Perl にキーの長さを計算させるために、C<klen> の値として 0 を渡すことは できないということに注意してください)。 @@ -973,10 +966,9 @@ あらかじめ計算したハッシュ値 (C<hv_store> に計算させる場合には、 ゼロ) です。 引数 C<lval> で、このフェッチ操作が実はストア操作の一部であるかどうかを -示します。 -ストア操作であれば、新たなundefind value が与えられた -キーを伴って HV に追加され、C<hv_fetch> はその値が既に -存在していたかのようにリターンします。 +示します; ストア操作であれば、新たなundefind value が与えられたキーを伴って +HV に追加され、C<hv_fetch> はその値が既に存在していたかのように +リターンします。 =begin original @@ -1091,7 +1083,7 @@ /* この便利なルーチンは、hv_iternext、hv_iterkey、 hv_itervalを組み合わせたものです。 引数keyとretlenは、キーとその長さを表わす戻り値です。 - 関数の戻り値はSV* で返されます。*/ + 関数の戻り値はSV* で返されます */ =begin original @@ -1241,11 +1233,10 @@ =end original C<hv_store> と C<hv_store_ent> の両方ともが、C<val> に格納されている -参照カウントのインクリメントをしないということに注意してください。 +参照カウントのインクリメントをしないということに注意してください; それは呼び出し側の責任です。 -これらの関数が NULL を返した場合、 -呼び出し側はメモリリークを防ぐために、C<val> の参照カウントの -デクリメントを行う必要が一般にはあるでしょう。 +これらの関数が NULL を返した場合、呼び出し側はメモリリークを防ぐために、 +C<val> の参照カウントのデクリメントを行う必要が一般にはあるでしょう。 =head2 AVs, HVs and undefined values @@ -1561,7 +1552,7 @@ まだ存在していなければ、rv をリファレンスにアップグレードします。 rv が指し示すための新たな SV を生成します。 -C<classname> がヌルでなければ、SV は指定されたクラスに bless され、 +C<classname> がヌルでなければ、SV は指定されたクラスに bless されます。 SV が返されます。 SV* newSVrv(SV* rv, const char* classname); @@ -1694,6 +1685,7 @@ C<GV_ADD> 引数とビット和を取って、幾つかの追加機能を有効とするような 二つのマクロがあります。 +ビットは以下の通りです: =over @@ -1832,6 +1824,7 @@ 参照カウントが 1 へと減じられ、そして何事もおこりません。 その SV は、Perl 自身が終了するまではそれにアクセスするなんの手段も 持たずに中ぶらりんになります。 +これはメモリリークです。 =begin original @@ -1926,8 +1919,7 @@ 最初のものは(値のない)揮発性の SV を生成し、ふたつめは既にある SV を 揮発性の SV に変換します(そして、このために C<SvREFCNT_dec> を呼び出しを -遅らせます)。 -三つめは、既に存在する SV の揮発性のコピーを生成します。 +遅らせます); 三つめは、既に存在する SV の揮発性のコピーを生成します。 C<sv_newmortal> は値のない新しい SV を作るので、普通は C<sv_setpv>, C<sv_setiv> などを使って作らなければなりません: @@ -2160,9 +2152,8 @@ =end original SV に複数のデータ値を入れるようにするには、二つのことを -しなくてはなりません。 -スカラ型を別に追加するために C<sv_set*v> ルーチンを使用すること。 -それから、フラグを設定して Perl に複数のデータを +しなくてはなりません: スカラ型を別に追加するために C<sv_set*v> ルーチンを +使用すること; それから、フラグを設定して Perl に複数のデータを 持っていることを知らせることです。 フラグを設定するための四つのマクロは以下のものです: @@ -2260,8 +2251,7 @@ =end original -これは、パッチレベル 0 の時点でのものです。 -変更される可能性があります。 +これは、パッチレベル 0 の時点でのものです; 変更される可能性があります。 =head2 Assigning Magic @@ -2318,8 +2308,7 @@ =end original 引数 C<name> と C<namlen> はある文字列と magic とを結び付けるために -使われます。 -典型的には変数の名前です。 +使われます; 典型的には変数の名前です。 C<namlen> は C<mg_len> フィールドに格納され、C<name> がヌルなら、 C<namlen> が 0 より大きいか、0 かに依存して、それぞれ C<name> の C<savepvn> コピーか、C<name> 自身に保管されます。 @@ -2934,7 +2923,7 @@ 警告: リリース 5.004 以降、配列やハッシュに対するアクセス 関数の正しい使い方は、幾つかの注意点を理解していることを要求しています。 これら幾つかの注意点は実際には API におけるバグとして -みなされるものであって、将来のリリースにおいては修正されます。 +みなされるものであって、将来のリリースにおいては修正されます; また、注意点は [MAYCHANGE] というブラケットで囲まれています。 このセクションにある情報をあなたが実際に使おうというのであれば、 将来それらは警告なしに変わる可能性があることに注意してください。 @@ -2963,9 +2952,8 @@ 最後に二つのハッシュを tie し、新たに生成した tie されたハッシュに対する リファレンスを返します。 以下の例では MyTie クラスの中で TIEHASH を呼び出していないということに -注意してください。 -この件に関する詳細は L<Calling Perl Routines from within C Programs> を -参照してください。 +注意してください - この件に関する詳細は +L<Calling Perl Routines from within C Programs> を参照してください。 SV* mytie() @@ -3064,6 +3052,11 @@ 保管したりするわけではないということです。 それらの関数は「保管」されたり「フェッチ」された値に対してマジックを 付加するために、単に C<mg_copy> を呼び出すだけです。 +Later calls to C<mg_get> and C<mg_set> actually +do the job of invoking the TIE methods on the underlying objects. Thus +the magic mechanism currently implements a kind of lazy access to arrays +and hashes. +(TBT) =begin original @@ -3148,10 +3141,9 @@ =end original -両者の最も大きな違いは、最初のものが -C<goto>、C<return>、C<die>/C<eval> など -どのようにブロックから脱出しようとも、 -$var の元々の値を復帰するということです。 +両者の最も大きな違いは、最初のものが C<goto>、C<return>、C<die>/C<eval> など +どのようにブロックから脱出しようとも、$var の元々の値を +復帰するということです。 効率といった面では大きな違いはありません。 =begin original @@ -3170,7 +3162,7 @@ =end original -Perl API を通して C から同様の処理を行う方法もあります。 +Perl API を通して C から同様の処理を行う方法もあります: I<擬似ブロック>(pseudo-block)を生成し、そのブロックの最後で自動的に 復帰するような幾つかの変更を行います。 ブロックから抜けるのは、明示的に抜けるための指示があっても良いし、 @@ -3229,7 +3221,7 @@ これらのマクロは、ポインタC<s>もしくは C<p> の値を リストアします。 -C<s> は C<SV*> に対する型変換をできるポインタでなければなりません。 +C<s> は C<SV*> に対する型変換をできるポインタでなければなりません; C<p> は C<char*> への型変換が可能であるべきものです。 =item C<SAVEFREESV(SV *sv)> @@ -3339,7 +3331,7 @@ =end original -I<擬似ブロック> の終端において関数 C<f> が呼び出されます。 +I<擬似ブロック> の終端において関数 C<f> が呼び出されます; この関数 C<f> は C<p> のみを引数に取ります。 =item C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)> @@ -3502,7 +3494,7 @@ =end original -スタック引数は C<ST(n)> というマクロを使ってアクセスできます。 +スタック引数は C<ST(n)> というマクロを使ってアクセスできます; これは、C<n> 番目のスタック引数を返すものです。 引数 0 は、Perl のサブルーチン呼び出しで渡された最初の引数です。 これらの引数は C<SV*> で、C<SV*> が使われるところであればどこでも @@ -3659,9 +3651,8 @@ 引数 C<SV*> には呼び出される Perl サブルーチンの名前か、その サブルーチンへのリファレンスが含まれます。 二番目の引数には、そのサブルーチンが呼び出されたコンテキストを制御する -フラグが置かれます。 -これはサブルーチンに引数が渡されたか渡されていないか、エラーを -どのようにトラップすべきなのか、どのように戻り値を返すのかを +フラグが置かれます; これはサブルーチンに引数が渡されたか渡されていないか、 +エラーをどのようにトラップすべきなのか、どのように戻り値を返すのかを 制御するものです。 =begin original @@ -3926,9 +3917,9 @@ =end original -この target をスタックに置くためのマクロが C<PUSHTARG> です。 -このマクロは、他の多くのマクロが C<(X)PUSH[iunp]> を通じて間接的に -使っているのと同様に、幾つかのオペコードで直接使われています。 +この target をスタックに置くためのマクロが C<PUSHTARG> です; このマクロは、 +他の多くのマクロが C<(X)PUSH[iunp]> を通じて間接的に使っているのと同様に、 +幾つかのオペコードで直接使われています。 =begin original @@ -4030,9 +4021,8 @@ その答えは、カレントユニット -- サブルーチンもしくは(サブルーチンの 外側にある文のためのオペコードのための)ファイル -- が コンパイルされたときです。 -この間、特別な無名配列が生成されます。 -これはカレントユニットのためのスクラッチパッド (scrachpad) と -呼ばれるものです。 +この間、特別な無名配列が生成されます; これはカレントユニットのための +スクラッチパッド (scrachpad) と呼ばれるものです。 =begin original @@ -4043,13 +4033,11 @@ =end original -スクラッチパッドはカレントユニットのためのレキシカルやオペコードの -ための target である SV を保持します。 -SV があるスクラッチパッドを、 -SV のフラグを見ることによって推測することができます。 -レキシカルでは -C<SVs_PADMY> されていて、I<target>s では C<SVs_PADTMP> が -セットされています。 +スクラッチパッドはカレントユニットのためのレキシカルやオペコードのための +target である SV を保持します。 +SV があるスクラッチパッドを、SV のフラグを見ることによって +推測することができます: レキシカルでは C<SVs_PADMY> されていて、 +I<target> では C<SVs_PADTMP> がセットされています。 =begin original @@ -4099,8 +4087,8 @@ 生成しようとするかもしれません。 子サブルーチンが(呼び出す子サブルーチンを覆っている寿命を持つ) 親サブルーチンの一時変数を上書きしてしまわないように、 -親と子では、異なるスクラッチパッドを持つようにすべきです -(B<かつ>、レキシカルは分けておくべきなのです!)。 +親と子では、異なるスクラッチパッドを持つようにすべきです。 +(I<かつ>、レキシカルは分けておくべきなのです!) =begin original @@ -4113,9 +4101,8 @@ 各サブルーチンは、スクラッチパッドの(長さが 1 の)配列を伴って生成されます。 サブルーチンに対する各エントリーはその時点での再帰の深さが -この配列の長さよりも大きくないことをチェックします。 -そして、もしそうであれば、新たなスクラッチパッドが生成されて配列へと -プッシュされます。 +この配列の長さよりも大きくないことをチェックします; そして、もし +そうであれば、新たなスクラッチパッドが生成されて配列へとプッシュされます。 =begin original @@ -4153,7 +4140,7 @@ =end original -これは次のような木構造へ変換されます(実際にはもっと複雑です)。 +これは次のような木構造へ変換されます: assign-to / \ @@ -4171,8 +4158,9 @@ =end original -この木構造は、Perl があなたのプログラムを解析したやり方を -反映していますが、実行の順序については反映していません。 +(実際にはもっと複雑です)。 +この木構造は、Perl があなたのプログラムを解析したやり方を反映していますが、 +実行の順序については反映していません。 ノードの実行順序を表わす木構造のノードを辿ろうとする別の 「スレッド」(thread) があります。 先の簡単な例では、次のようになります。 @@ -4188,8 +4176,8 @@ =end original -しかし、C<$a = $b + $c> に対する実際の解析木はこれと異なります。 -一部のノードがB<最適化>されています。 +しかし、C<$a = $b + $c> に対する実際の解析木はこれと異なります: 一部の +ノードがI<最適化>されています。 その結果として、実際の木構造が私たちの単純な例よりも多くのノードを 持っていたとしても、その実行順序は同じになります。 @@ -4248,8 +4236,7 @@ この木には五つのノード(C<TYPE> 毎にひとつ)があって、そのうちの 三つだけが最適化されないものです(左側に数字のあるもの)。 与えられたノードのすぐ下にある子供は同じレベルのインデントにある C<{}> の -ペアに対応します。 -したがって、このリストは以下の木に対応します。 +ペアに対応します; したがって、このリストは以下の木に対応します。 add / \ @@ -4266,7 +4253,7 @@ =end original 実行順序は C<===E<gt>> マークによって表わされますから、C<3 4 5 6> -(ノード C<6>は、上にあるリストには含まれません)となります。 +(ノード C<6>は、上にあるリストには含まれません)となります; つまり、C<gvsv gvsv add whatever> ということになります。 =begin original @@ -4461,7 +4448,7 @@ 解析木の一部分のコンテキストがわかっているとき、それは木の末端へ伝播します。 このとき、コンテキストは(実行時コンテキストの二種類ではなく) 無効、真偽値、スカラ、リスト、左辺値の五種類の値を持つことができます。 -パス 1 とは対照的に、このパスではトップから末端へと処理が進みます。 +パス 1 とは対照的に、このパスではトップから末端へと処理が進みます: あるノードのコンテキストは、その下にある部分のコンテキストを決定します。 =begin original @@ -5946,7 +5933,7 @@ 内部関数の文書を書いて、そこからリファレンスマニュアルを自動的に 生成しようという作業が行われています - L<perlapi> はその一つで、XS 作者が -利用可能な全ての関数の詳細に関するマニュアルです; +利用可能な全ての関数の詳細に関するマニュアルです。 L<perlintern> は、API の一部ではなく、内部使用専用と想定されている関数の 自動生成マニュアルです。 @@ -6612,9 +6599,6 @@ 一つの「論理」op 型 C<OP_CUSTOM> に複数のカスタム op を 含めることができるので、Perl はどのカスタム op を扱うかを決定するのに C<< o->op_ppaddr >> の値を使います。 -You should also "register" your op with the Perl interpreter so that it -can produce sensible error and warning messages. Since it is possible to -have multiple custom ops within the one "logical" op type C<OP_CUSTOM>, Perl uses the value of C<< o->op_ppaddr >> to determine which custom op it is dealing with. You should create an C<XOP> structure for each ppaddr you use, set the properties of the custom op with Index: docs/perl/5.14.1/perlre.pod diff -u docs/perl/5.14.1/perlre.pod:1.4 docs/perl/5.14.1/perlre.pod:1.5 --- docs/perl/5.14.1/perlre.pod:1.4 Sat Oct 13 10:24:51 2012 +++ docs/perl/5.14.1/perlre.pod Fri Feb 8 17:58:06 2013 @@ -1006,6 +1006,7 @@ 複数行での利用を簡単にするために、文字 "." は C</s> 修飾子を 使って Perl に文字列を1行として処理すると伝えない限り 改行にはマッチングしません。 +X<.> X</s> =head3 Quantifiers @@ -1655,7 +1656,8 @@ Capture group contents are dynamically scoped and available to you outside the pattern until the end of the enclosing block or until the next successful -match, whichever comes first. (See L<perlsyn/"Compound Statements">.) +match, whichever comes first. +(L<perlsyn/"Compound Statements"> を参照してください。) You can refer to them by absolute number (using C<"$1"> instead of C<"\g1">, etc); or by name via the C<%+> hash, using C<"$+{I<name>}">. (TBT) @@ -1807,7 +1809,7 @@ C<%+> ハッシュのような特殊変数と、数値によるマッチング変数 (C<$1>, C<$2>, C<$3> など)はブロックの終端または次のマッチング 成功までのどちらか先に満たした方の、動的なスコープを持ちます。 -(L<perlsyn/"Compound Statements"> を参照してしてください。) +(L<perlsyn/"Compound Statements"> を参照してください。) X<$+> X<$^N> X<$&> X<$`> X<$'> X<$1> X<$2> X<$3> X<$4> X<$5> X<$6> X<$7> X<$8> X<$9> @@ -1850,8 +1852,8 @@ キャプチャのかっこに含まれるそれぞれのパターンにも 同じ料金を払っています。 (グループ化の振る舞いを維持しつつこのコストを削減するには -拡張正規表現 C<(?: ... )> を代わりに使います。 -(訳注:Perl拡張というだけで C</x> 修飾子は不要。)) +拡張正規表現 C<(?: ... )> を代わりに使います +(訳注:Perl拡張というだけで C</x> 修飾子は不要)。) ですが C<$&>, C<$`> または C<$'> を一度も使わなければ、 キャプチャのかっこをI<もたない>パターンではこの不利益はなくなります。 この為、可能であれば C<$&>, C<$'>, 及び C<$`> を削除しましょう: @@ -1881,6 +1883,7 @@ C<${^MATCH}> 及び C<${^POSTMATCH}> を導入しました。 これらの変数の使用は利用したいときに perl に伝える必要がある代わりに、 等価な記号変数とは違い全体的なパフォーマンスの低下を引き起こしません。 +X</p> X<p modifier> =head2 Quoting metacharacters @@ -2135,8 +2138,7 @@ others, and a maximum of one (or two C<a>'s) may appear in the construct. 従って 例えば C<(?-p)> は C<use warnings> の下でコンパイルされると -警告を発します。 -C<(?-d:...)> and C<(?dl:...)> are fatal errors. +警告を発します; C<(?-d:...)> と C<(?dl:...)> は致命的エラーです。 (TBT) =begin original @@ -2200,6 +2202,7 @@ C<?> 及び C<:> の間の文字は C<(?adluimsx-imsx)> のようなフラグ修飾子として 動作します。 +例えば、 /(?s-i:more.*than).*million/i @@ -2222,8 +2225,9 @@ =end original Perl 5.14から、C<"^">(キャレットか曲折アクセント)がC<"?">のすぐ -後ろにつくと、C<d-imsx>と同じになります。どのような肯定の -フラグ(C<"d">以外の)もキャレットに続けることができます。そのため、 +後ろにつくと、C<d-imsx>と同じになります。 +どのような肯定のフラグ(C<"d">以外の)もキャレットに続けることができます; +そのため、 (?^x:foo) @@ -2247,7 +2251,7 @@ キャレットは、Perlにこのクラスターはパターンの周りのどのフラグも 引き継がずに、代わりに、システムのデフォルトのフラグ(C<d-imsx>) -を使うことを教えます。指定されている他のフラグによって変更されます。 +を使うことを教えます; 指定されている他のフラグによって変更されます。 =begin original @@ -2275,7 +2279,8 @@ このような文字列化を見るテストには、したがって、システムのデフォルのフラグを その中にハードコードする必要はなく、ただキャレットを使います。新しいフラグが Perlに追加されたら、キャレットを展開した意味はそれらのフラグのためのデフォルトを -含むように変更されます。そのために、このテストは、それでも何も変えずに動くでしょう。 +含むように変更されます; そのために、このテストは、それでも何も変えずに +動くでしょう。 =begin original @@ -2294,8 +2299,8 @@ =end original -C<(?^...)>の覚え方: 新鮮な開始。通常のキャレットの使い方は -文字列の開始のマッチなので。 +C<(?^...)>の覚え方: 新鮮な開始; 通常のキャレットの使い方は文字列の開始の +マッチなので。 =item C<(?|pattern)> X<(?|)> X<Branch reset> @@ -2734,6 +2739,7 @@ この機能では一緒にネストしたかっこの数を数えなくとも1つ前の マッチング結果をキャプチャ特殊変数 C<$^N> を使うことができます。 +例えば: $_ = "The brown fox jumps over the lazy dog"; /the (\S+)(?{ $color = $^N }) (\S+)(?{ $animal = $^N })/i; @@ -2803,7 +2809,7 @@ 使われるかもしれません。 この方法で使われI<なかった>のなら、C<code> の評価結果は特殊変数 C<$^R> に おかれます。 -これはすぐに行われるので C<$^R> は同じ正規表現内の他の C<$?{ code })> +これはすぐに行われるので C<$^R> は同じ正規表現内の他の C<?{ code })> アサーションで使うことができます。 =begin original @@ -3020,8 +3026,8 @@ =end original 入力を消費しない 50 回を超える深い再帰は致命的なエラーとなります。 -最大深度は perl にコンパイルされているので、これを変更するには -特別にビルドする必要があります。 +最大深度は perl にコンパイルされているので、これを変更するには特別に +ビルドする必要があります。 =item C<(?PARNO)> C<(?-PARNO)> C<(?+PARNO)> C<(?R)> C<(?0)> X<(?PARNO)> X<(?1)> X<(?R)> X<(?0)> X<(?-1)> X<(?+1)> X<(?-PARNO)> X<(?+PARNO)> @@ -3065,7 +3071,7 @@ PARNO の前に正符号または負符号がついていた場合には相対的な位置として 使われます; 負数であれば前の捕捉グループを、正数であれば続く 捕捉グループを示します。 -従って C<(-1)> は一番最近宣言されたグループを参照し、C<(?+1)> は次に +従って C<(?-1)> は一番最近宣言されたグループを参照し、C<(?+1)> は次に 宣言されるグループを参照します。 相対再帰の数え方は相対後方参照とは違って、グループに閉じていない再帰は 含まB<れる>ことに注意してください, @@ -3532,7 +3538,7 @@ マッチングした文字列を消費します; これはゼロ幅の言明が C<< (?>...) >> の類似を作るためです。 (この2つの構成子は後者はグループをキャプチャするため、 -それに続く正規表現の残りで後方参照の順序をずらす点で違いがあります)。 +それに続く正規表現の残りで後方参照の順序をずらす点で違いがあります。) =begin original @@ -4326,6 +4332,9 @@ 正規表現マッチングの基本的な機能には最近(必要であれば)すべての強欲でない 正規表現量指定子、つまり、C<*>, C<*?>, C<+>, C<+?>, C<{n,m}>, C<{n,m}?> で 使われる I<バックトラッキング> と呼ばれる概念が含まれています。 +Backtracking is often optimized +internally, but the general principle outlined here is valid. +(TBT) =begin original @@ -4799,7 +4808,7 @@ もし "[" の後の最初の文字が "^" だったときには、その文字クラスは リストの中にない任意の文字にマッチングします。 リストの中では、文字 "-" は範囲を意味します; なので C<a-z> は "a" と "z" を -含めてそれらの間にあるすべての文字を表現します; +含めてそれらの間にあるすべての文字を表現します。 文字クラスの要素として "-" または "]" を使いたい時には、リストの先頭に (あるいは"^"の後に)置くか、バックスラッシュを使ってエスケープします。 "-" はリストの終端、リストを閉じる "]" の直前にあったときもリテラルとして @@ -4895,7 +4904,7 @@ 試されるので、"foo" の部分がマッチングし、これは対象の文字列に対して成功で マッチングします。 (これは重要ではないでしょうが、かっこを使ってマッチングしたテキストを -捕捉しているときには重要でしょう)。 +捕捉しているときには重要でしょう。) =begin original