argra****@users*****
argra****@users*****
2008年 12月 3日 (水) 01:46:55 JST
Index: docs/perl/5.10.0/perlapio.pod diff -u docs/perl/5.10.0/perlapio.pod:1.3 docs/perl/5.10.0/perlapio.pod:1.4 --- docs/perl/5.10.0/perlapio.pod:1.3 Mon Jun 30 04:09:58 2008 +++ docs/perl/5.10.0/perlapio.pod Wed Dec 3 01:46:55 2008 @@ -108,10 +108,9 @@ =end original -C<PerlIO *> takes the place of FILE *. Like FILE * it should be -treated as opaque (it is probably safe to assume it is a pointer to -something). -(TBT) +C<PerlIO *> は FILE * のようなものです。 +FILE * と同様に、これは不透明なものとして扱われます(これを何かへの +ポインタとして仮定することはおそらく安全です)。 =begin original @@ -907,9 +906,7 @@ “バッファ”中のカレントポジションへのポインターとバッファにある バイト数を返すことのできる実装です。 -Do not use this - use -PerlIO_fast_gets. -(TBT) +これを使わないでください - PerlIO_fast_gets を使ってください。 =item B<PerlIO_get_cnt(f)> Index: docs/perl/5.10.0/perldiag.pod diff -u docs/perl/5.10.0/perldiag.pod:1.7 docs/perl/5.10.0/perldiag.pod:1.8 --- docs/perl/5.10.0/perldiag.pod:1.7 Mon Oct 27 07:18:43 2008 +++ docs/perl/5.10.0/perldiag.pod Wed Dec 3 01:46:55 2008 @@ -6950,11 +6950,11 @@ =end original -(W io deprecated) You used opendir() to associate a dirhandle to -a symbol (glob or scalar) that already holds a filehandle. +(W io deprecated) すでにファイルハンドルを保持しているシンボル +(グロブまたはスカラ)にディレクトリハンドルを関連付けるために +opendir() を使いました。 これは不正ではありませんが、この用法はコードを間違えて解釈する可能性が あるので非推奨です。 -(TBT) =item Operation "%s": no method found, %s @@ -7375,12 +7375,11 @@ =end original -(P) The internal routine used to clear a hashes entries tried repeatedly, -but each time something added more entries to the hash. +(P) ハッシュ要素をクリアするための内部ルーチンが何度か実行されましたが、 +実行される毎に何かがハッシュに要素を追加しました。 最もありそうなのは、ハッシュが、そのハッシュへのリファレンスがある オブジェクトと、ハッシュへの新しいオブジェクトを追加するデストラクタを 含む場合です。 -(TBT) =item panic: INTERPCASEMOD @@ -8565,11 +8564,9 @@ =end original -(F) You used C<\g0> or similar in a regular expression. You may refer to -capturing parentheses only with strictly positive integers (normal -backreferences) or with strictly negative integers (relative -backreferences), but using 0 does not make sense. -(TBT) +(F) 正規表現で C<\g0> のようなものを使いました。 +捕捉用のかっこへの参照は、正数(通常の後方参照)か、負数(相対後方参照) +のみなので、0 は意味を成しません。 =item Reference to nonexistent group in regex; marked by <-- HERE in m/%s/ @@ -8606,10 +8603,8 @@ =end original -(F) You used something like C<\g{-7}> in your regular expression, but there are -not at least seven sets of closed capturing parentheses in the expression before -where the C<\g{-7}> was located. -(TBT) +(F) 正規表現で C<\g{-7}> のようなものを使いましたが、式中で C<\g{-7}> の +位置より前に少なくとも 7 組の捕捉用のかっこの組がありません。 =begin original @@ -11640,7 +11635,8 @@ This can happen for one of two reasons. First, the outer lexical may be declared in an outer anonymous subroutine that has not yet been created. (Remember that named subs are created at compile time, while anonymous -subs are created at run-time.) For example, +subs are created at run-time.) +例えば、 (TBT) sub { my $a; sub f { $a } } @@ -11654,11 +11650,10 @@ =end original -At the time that f is created, it can't capture the current value of $a, -since the anonymous subroutine hasn't been created yet. Conversely, -the following won't give a warning since the anonymous subroutine has by -now been created and is live: -(TBT) +f が作成された時点で、$a の現在の値を捕捉できません; +なぜなら無名サブルーチンはまだ作成されていないからです。 +逆に、以下のものは、無名サブルーチンがすでに作成されていて有効なので、 +警告は出ません: sub { my $a; eval 'sub f { $a }' }->(); @@ -11854,13 +11849,12 @@ =end original -(W portable) The use of v-strings is non-portable to older, pre-5.6, Perls. -If you want your scripts to be backward portable, use the floating -point version number: for example, instead of C<use 5.6.1> say -C<use 5.006_001>. This of course won't make older Perls suddenly start -understanding newer features, but at least they will show a sensible -error message indicating the required minimum version. -(TBT) +(W portable) v-文字列の使用は古い(5.6 より前の) Perl との互換性がありません。 +もし過去互換性がほしいなら、小数点バージョン番号を使ってください: +例えば、C<use 5.6.1> ではなく C<use 5.006_001> を使ってください。 +もちろんこれによって古い Perl が突然新しい機能を理解するようには +なりませんが、少なくとも必要な最低バージョンを示す実用的な +エラーメッセージを出力します。 =begin original Index: docs/perl/5.10.0/perlsub.pod diff -u docs/perl/5.10.0/perlsub.pod:1.4 docs/perl/5.10.0/perlsub.pod:1.5 --- docs/perl/5.10.0/perlsub.pod:1.4 Sun Nov 2 21:59:15 2008 +++ docs/perl/5.10.0/perlsub.pod Wed Dec 3 01:46:55 2008 @@ -98,11 +98,20 @@ サブルーチンを呼び出すには: X<subroutine, call> X<call> +=begin original + NAME(LIST); # & is optional with parentheses. NAME LIST; # Parentheses optional if predeclared/imported. &NAME(LIST); # Circumvent prototypes. &NAME; # Makes current @_ visible to called subroutine. +=end original + + NAME(LIST); # かっこが付いているときは & は省略可能。 + NAME LIST; # 予め宣言/インポートされているならかっこは省略可能。 + &NAME(LIST); # プロトタイプを回避する。 + &NAME; # 呼び出されたサブルーチンから現在の @_ を可視化する。 + =head1 DESCRIPTION =begin original @@ -317,7 +326,7 @@ これは、参照渡しを値渡しにする効果もあります。 なぜなら、値のコピーを代入しているからです。 -このようにしないのであれば、関数は自由にC<@_>の値をその場で +このようにしないのであれば、関数は自由に C<@_> の値をその場で 書き換えることができ、それはそのまま呼び出し側の値を変更します。 X<call-by-reference> X<call-by-value> @@ -426,7 +435,7 @@ サブルーチンは、明示的な C<&> というプリフィックスを付けて呼び出すことが できます。 -最近のPerlでは C<&> は省略可能であり、サブルーチンがあらかじめ +最近の Perl では C<&> は省略可能であり、サブルーチンがあらかじめ 宣言されている場合には括弧も省略できます。 defined() や undef() の引数として使ったような、単なる名前付き サブルーチンであるときの C<&> は B<省略可能ではありません>。 @@ -449,10 +458,9 @@ =end original サブルーチンは再帰的に呼び出すこともできます。 -あるサブルーチンが C<&> を付けられていて、引数リストが -(省略可能であって)省略されたとき、そのサブルーチンに対して -C<@_> 配列がセットアップされることはありません: -呼び出しの C<@_> 配列はサブルーチンに対して可視となります。 +あるサブルーチンが C<&> 付きで呼び出されたなら、引数リストは省略可能で、 +もし省略されたなら、そのサブルーチンに対して C<@_> 配列は設定されません: +代わりに呼び出し時の C<@_> 配列がサブルーチンに対して可視となります。 これは新しいユーザーが避けたいと思う効果的なメカニズムです。 X<recursion> @@ -483,8 +491,9 @@ =end original - &foo; # foo() get current args, like foo(@_) !! - foo; # like foo() IFF sub foo predeclared, else "foo" + &foo; # foo() は foo(@_) と同様現在の引数を取る!! + foo; # サブルーチン foo が予め定義されている場合に限り + # foo() と同様、それ以外では "foo" =begin original @@ -497,7 +506,7 @@ =end original C<&> 形式は引数リストを省略可能にするばかりでなく、与えられた引数に -対するすべてのプロトタイプチェックも無効にしてします。 +対するすべてのプロトタイプチェックも無効にします。 これは一部には歴史的な理由であり、一部にはあなたが自分の行っている動作を わかっているときにうまくごまかしを行う便利な方法を残しておくためです。 後に出てくる L<Prototypes> を参照してください。 @@ -514,13 +523,13 @@ =end original -名前が全て大文字であるサブルーチンは、Perlのコアで予約されています。 +名前が全て大文字であるサブルーチンは、Perl のコアで予約されています。 これは全て小文字のものがモジュールであることと同じです。 -先頭だけが大文字のサブルーチンはゆるやかな規約で、 -実行時にシステム自身によって、 -通常はイベントをトリガーとして間接的に呼び出されます。 -特殊なことをするサブルーチンはあらかじめ決められている C<AUTOLOAD>, C<CLONE>, -C<DESTROY> に、L<perltie> と L<PerlIO::via> で +先頭だけが大文字のサブルーチンは、実行時にシステム自身によって(通常は +イベントをトリガーとして)間接的に呼び出されることを意味するゆるやかな +規約です。 +特殊で、あらかじめ決められていることをするサブルーチンは、 +C<AUTOLOAD>, C<CLONE>, C<DESTROY> に、L<perltie> と L<PerlIO::via> で 説明されている関数全てを加えたものです。 =begin original @@ -532,7 +541,7 @@ =end original -The C<BEGIN>, C<UNITCHECK>, C<CHECK>, C<INIT> and C<END> サブルーチンは +The C<BEGIN>, C<UNITCHECK>, C<CHECK>, C<INIT>, C<END> サブルーチンは サブルーチンというよりは特殊コードブロックで、その中でも一つのパッケージに 複数作ることができ、明示的には B<呼び出せません> 。 L<perlmod/"BEGIN, UNITCHECK, CHECK, INIT and END"> を参照してください。 @@ -726,7 +735,8 @@ =end original 宣言された変数は、その文が終了するまでは導入されません(不可視の -状態です)。したがって、 +状態です)。 +したがって、 my $x = $x; @@ -759,9 +769,10 @@ =end original -制御構文のレキシカルスコープは、その制御ブロックを区切るカーリー -ブレースによって非常にきつく束縛されることはありません。 -制御の式もまた、スコープの一部です。ですから以下のループでは +制御構文のレキシカルスコープは、その制御ブロックを区切る中かっこによって +厳格に束縛されることはありません; +制御式もまた、スコープの一部です。 +ですから以下のループでは while (my $line = <>) { $line = lc $line; @@ -777,8 +788,9 @@ =end original -$line のスコープはその宣言からループ構造の残りまで拡張される -(C<continue>ブロックを含みます)のですが、それを越えることはありません。 +$line のスコープはその宣言から(C<continue>ブロックを含む)ループ構造の残りの +部分まで拡張されますが、それを越えることはありません。 +同様に、以下の条件文では if ((my $answer = <STDIN>) =~ /^yes$/i) { user_agrees(); @@ -798,10 +810,10 @@ =end original -同様に、この条件構造文では、$answer のスコープはその宣言から条件構造文の +$answer のスコープはその宣言から条件文の C<elsif> と C<else> ブロックを含む残りの部分まで拡張されますが、 それを越えることはありません。 -就職子付きの文の変数のスコープに関する情報については +修飾子付きの文での変数のスコープに関する情報については L<perlsyn/"Simple statements"> を参照してください。 =begin original @@ -817,9 +829,9 @@ C<foreach> はその添え字変数に対するスコープをデフォルトでは C<local> のやり方で動的なものにしています。 -しかしながら、添え字変数に C<my> というキーワードが前置されていた場合または -現在のスコープでその名前がすでにレキシカルである場合には、 -その変数のスコープは新たにレキシカルなものとなります。 +しかしながら、添え字変数に C<my> というキーワードが前置されていた場合、 +または現在のスコープでその名前がすでにレキシカルである場合には、 +新しいレキシカル変数が代わりに作られます。 ですから以下のループでは: X<foreach> X<for> @@ -835,9 +847,8 @@ =end original -$i のスコープはループの終端まで拡張されますが、それを越えることは -ありません。 -このため $i の値は C<some_function()> の中では参照することができません。 +$i のスコープはループの終端まで拡張されますが、それを越えることはないので、 +$i の値は C<some_function()> の中では参照することができなくなります。 X<foreach> X<for> =begin original @@ -887,7 +898,7 @@ =end original C<my> はコンパイル時の効果と実行時の効果の両方を持っています。 -コンパイル時においては、コンパイラーはその変数を認識します。 +コンパイル時においては、コンパイラはその変数を認識します。 これの基本的な実用性は C<use strict 'vars'> を黙らせるということですが、 L<perlref> で詳細を記述しているクロージャの作成にも有用です。 実際の初期化は実行時まで遅らされ、そのためたとえばループを通る度に @@ -917,7 +928,7 @@ =end original 実際のところ、動的変数(パッケージ変数やグローバル変数として -知られているもの)は、同じ名前を持ったlexicalが可視な状態であったとしても、 +知られているもの)は、同じ名前を持ったレキシカルが可視な状態であったとしても、 C<::> 記法を使った(名前の)完全な修飾を行うことによって まだアクセス可能なのです: @@ -947,8 +958,8 @@ =end original -このファイルの外側の世界から識別子を隠すために、C<my> 変数をファイルの -最も外側のスコープで宣言することができます。 +このファイルの外側の世界からこのような識別子を隠すために、C<my> 変数を +ファイルの最も外側のスコープで宣言することができます。 これは、概念としては C でのファイルレベルの static 変数と似ています。 これをサブルーチンの内側で行うには、 クロージャ(レキシカルアクセスを伴った無名関数)を使います。 @@ -972,7 +983,7 @@ このリファレンスが決して、モジュールの内側にあるどんな関数からも 返されることがないのと同様に、外側のモジュールはサブルーチンを -見るとこができません。 +見ることができません。 なぜなら、その名前はどのパッケージのシンボルテーブルにも 存在していないからです。 C<$some_pack::secret_version> などの手段を使って呼び出すことは @@ -990,7 +1001,7 @@ =end original しかしこれはオブジェクトメソッドと共に動作させることはできません。 -全てのオブジェクトメソッドは一部のパッケージが見つけることのできる +全てのオブジェクトメソッドは、発見可能な何らかのパッケージの シンボルテーブルに存在している必要があります。 これを回避する方法については L<perlref/"Function Templates"> を 参照してください。 @@ -1015,6 +1026,8 @@ =head3 Persistent variables via state() +(state() による永続変数) + =begin original Beginning with perl 5.9.4, you can declare variables with the C<state> @@ -1069,7 +1082,7 @@ =head3 Persistent variables with closures -(クロージャでの永続変数) +(クロージャによる永続変数) =begin original @@ -1099,13 +1112,14 @@ =end original C や C++ におけるローカル変数とは異なり、Perl のレキシカル変数は -そのスコープから抜けるので、リサイクルする必要がありません。 -レキシカル変数に関して考慮すべきより永続的ななにかがあれば、 -それは周りにはめ込まれるでしょう。 -レキシカル変数を参照するものと同じくらいの寿命なので、 -そのレキシカル変数は解放されることがありません。 -あなたはそれを使いおわるまでは解放しようとは思わないでしょう。 -あなたのために自動ガーベッジコレクションがこれを行います。 +単にそのスコープから抜けたからという理由で、必ずしもリサイクルされません。 +何かもっと永続的なものがそのレキシカル変数に関してまだ気付いていれば、 +それは留まるでしょう。 +何か他のものがレキシカル変数を参照していれば、そのレキシカル変数は +解放されません -- そしてそうあるべきです。 +あなたはそれを使いおわるまではメモリを解放したいとは思わないでしょうし、 +使い終わったものを保持し続けたいとも思わないでしょう。 +あなたのために自動ガベージコレクションがこれを行います。 =begin original @@ -1121,7 +1135,7 @@ これはつまり、レキシカル変数に対するリファレンスを返したり 保存したりすることができるということです。 -一方 C の auto 変数に対するポインターを返すことはエラーとなります。 +一方 C の auto 変数に対するポインタを返すことはエラーとなります。 レキシカル変数はまた、C の関数に static な変数のシミュレートも行います。 以下の例はレキシカルスコープを持つと同時に static な寿命を持つ関数に プライベートな変数です。 @@ -1153,7 +1167,7 @@ この関数が C<require> や C<use> を通じて別の独立したファイルから 取り込まれた場合、これはとても役に立つことでしょう。 もしこれがすべてメインプログラムの中にあるのであれば、 -ブロック全体をメインプログラムの前に置くか(こちらか好ましいやり方ですが) +ブロック全体をメインプログラムの前に置くか、(こちらか好ましいやり方ですが) プログラムが実行されるよりも前に実行されることが保証されている BEGIN コードブロックの中に置くようにして、C<my> を早めに実行するように 変更する必要があるでしょう: @@ -1211,7 +1225,8 @@ =end original B<警告>: 一般的には、C<local> ではなくC<my> を使うべきです。 -なぜなら、そちらのほうが早く、安全だからです。この例外には、グローバルな +なぜなら、そちらのほうが早く、安全だからです。 +この例外には、グローバルな 句読点変数(punctuation variable)、グローバルファイルハンドル、フォーマット、 そして Perl のシンボルテーブル自身に対する直接の操作が含まれます。 C<local> はほとんどの場合、変数の現在の値が呼び出されたサブルーチンに @@ -1484,9 +1499,9 @@ =end original This implies, among other things, that any magic eventually carried by -those variables is locally lost. In other words, saying C<local */> -will not have any effect on the internal value of the input record -separator. +those variables is locally lost. +言い換えると、C<local */> としても、入力レコードセパレータの内部の +値には何の影響も与えないということです。 (TBT) =begin original @@ -1502,8 +1517,8 @@ Notably, if you want to work with a brand new value of the default scalar $_, and avoid the potential problem listed above about $_ previously carrying a magic value, you should use C<local *_> instead of C<local $_>. -As of perl 5.9.1, you can also use the lexical form of C<$_> (declaring it -with C<my $_>), which avoids completely this problem. +perl 5.9.1 以降、(C<my $_> とすることで) レキシカルな C<$_> を使うこともでき、 +これによってこの問題を完全に回避できます。 (TBT) =head3 Localization of elements of composite types @@ -1627,7 +1642,8 @@ サブルーチンと、代入の右側のスカラ/リストコンテキストは サブルーチン呼び出しがスカラに置き換えられたかのようにして -決定されます。例として、以下を考えると: +決定されます。 +例として、以下を考えると: data(2,3) = get_data(3,4); @@ -1681,11 +1697,11 @@ =end original -You can't use the return keyword, you must pass out the value before -falling out of subroutine scope. (see comment in example above). This -is usually not a problem, but it disallows an explicit return out of a -deeply nested loop, which is sometimes a nice way out. -(TBT) +return キーワードは使えず、サブルーチンスコープから抜ける前に値を +渡さなければなりません。 +(上述の例のコメントを参照してください)。 +これは普通は問題になりませんが、深くネストしたループから明示的に return で +脱出するのは、時々よい方法となりますが、出来なくなります。 =begin original @@ -1696,9 +1712,11 @@ =end original これはカプセル化に違反しています。 -A normal mutator can check the supplied -argument before setting the attribute it is protecting, an lvalue -subroutine never gets that chance. Consider; +通常の mutator は +can check the supplied +argument before setting the attribute it is protecting, +左辺値サブルーチンにはその機会はありません。 +以下を考えると; (TBT) my $some_array_ref = []; # protected by mutators ?? @@ -1854,7 +1872,7 @@ =end original -C<@ARGV> だとか句読点変数(punctuation variables)のようなグローバル変数では、 +C<@ARGV> や句読点変数(punctuation variables)のようなグローバル変数では、 局所化のために C<local()> を使わなければなりません。 以下のブロックは F</etc/motd> を読み込み、等価記号を使って行の塊を分割し、 その結果を C<@Fields> に格納します。 @@ -1926,7 +1944,8 @@ =end original 型グロブに対するリファレンスの代入はエイリアスを生成するので、 -以下の例では効果的にローカル関数を生成するのに使うことができます。 +以下の例では効果的にローカル関数(あるいは少なくともローカルエイリアス)を +生成するのに使うことができます。 { local *grow = \&shrink; # only until this block exists @@ -1978,7 +1997,7 @@ =end original -しかし、レキシカル変数であっても動作します。 +しかし、これはレキシカル変数であっても動作します。 5.005 より前のものでは、この操作は間違った状況になる可能性がありました。 =back @@ -2000,7 +2019,7 @@ もし、配列やハッシュを二つ以上関数に渡したいとか関数から返したいと 考えていて、同時にそれらを完全な状態で扱いたいというのであれば、 -陽に参照渡しを使う必要があるでしょう。 +明示的に参照渡しを使う必要があるでしょう。 これを行う前に、L<perlref> で説明されているリファレンスを理解する 必要があります。 このセクションでは改めて説明するようなことはしません。 @@ -2013,7 +2032,8 @@ =end original -幾つか単純な例を挙げましょう。まず最初に、ある関数に幾つかの配列を渡し、 +幾つか単純な例を挙げましょう。 +まず最初に、ある関数に幾つかの配列を渡し、 全ての配列に対して C<pop> を行って引数として受け取った配列の それぞれの最後の要素からなる新しいリストを返すということを 考えてみましょう。 @@ -2147,7 +2167,7 @@ =end original この例では、シンボルテーブルの別名づけをするために型グロブを使っています。 -これは微妙なものであり、C<my> 変数を使った場合にはうまくいきません。 +しかし、これは微妙なものであり、C<my> 変数を使った場合にはうまくいきません。 なぜなら、グローバルなもの(C<local()> で偽装したものを含む)だけが シンボルテーブルにあるからです。 @@ -2161,7 +2181,8 @@ ファイルハンドルを扱おうというのであれば、通常は C<*STDOUT> のような 裸の型グロブ(bare typeglob)を使うことができますが、型グロブの -リファレンスも動作します。例を挙げましょう: +リファレンスも動作します。 +例を挙げましょう: splutter(\*STDOUT); sub splutter { @@ -2293,8 +2314,8 @@ =end original -バックスラッシュが付けられたプロトタイプキャラクターは、実引数が -そのキャラクターで始まるものでなければならないことを表します。 +バックスラッシュが付けられたプロトタイプ文字は、実引数が +その文字で始まるものでなければならないことを表します。 C<@_> の一部として渡された引数は、そのサブルーチン呼び出しにおいて 与えられた実引数に C<\> を適用したリファレンスとなります。 @@ -2343,11 +2364,11 @@ =end original -バックスラッシュが付けられていないキャラクターは特別な意味を持っています。 +バックスラッシュが付けられていない文字は特別な意味を持っています。 バックスラッシュを付けられていない すべての C<@> とC<%> は残りの引数全てを -とってしまい、さらにリストコンテキストを強制します。 +取ってしまい、さらにリストコンテキストを強制します。 C<$> で表される引数はスカラコンテキストを強制されます。 -第一引数として渡された場合、C<&>は C<sub> キーワードや連続したカンマを +第一引数として渡された場合、C<&> は C<sub> キーワードや連続したカンマを 要求しないような無名サブルーチンを要求します。 =begin original @@ -2361,7 +2382,7 @@ =end original -c<*>は、スロットにある裸の単語、定数、スカラ式、型グロブ、 +C<*> は、スロットにある裸の単語、定数、スカラ式、型グロブ、 型グロブに対するリファレンスを許しています。 その値はサブルーチンにとって単純なスカラとすることも 型グロブに対するリファレンスにもなります。 @@ -2383,7 +2404,8 @@ =end original セミコロン (C<;>) は、必須の引数と省略可能な引数とを分割します。 -C<@>やC<%>の前ではこれは冗長です。その他のものを吸収します。 +C<@> や C<%> の前ではこれは冗長です。 +その他のものを吸収します。 =begin original @@ -2422,7 +2444,7 @@ =end original -とすると、プロトタイプなしの場合の C<mytime(2)> ではなく、 +とすると、プロトタイプなしの場合にパースされる C<mytime(2)> ではなく、 C<mytime() + 2> となります。 =begin original @@ -2506,7 +2528,7 @@ 残してあるのです。 現時点でのプロトタイプの機構の主な目的はモジュール作者がそのユーザーに 対してより良い診断メッセージを提供させるようにするためのものなのです。 -この記法は Perl プログラマーが非常に理解しやすく、モジュールの中身に +この記法は Perl プログラマが非常に理解しやすく、モジュールの中身に 進入するようなことも読みづらくしたりすることもないと Larry は考えています。 回線の雑音は飲み込みやすい小さな丸薬に視覚的に押し込められるのです。 @@ -2690,16 +2712,13 @@ 警告を受けることになります。 (この警告を、あるサブルーチンが定数サブルーチンとして認識されるかどうかを 区別するために使うことができます。) -The warning is -considered severe enough not to be optional because previously compiled -invocations of the function will still be using the old value of the -function. +以前にコンパイルした関数の起動によってこの関数の古い値を使い続けるので、 +この警告はオプションにするには重大すぎると考えられました。 そのサブルーチンを再定義できる必要があるのならば、C<()> プロトタイプを やめる(これは呼び出しのセマンティクスを変えてしまうので注意してください)か、 以下の例のようにしてインライン展開機構を 働かせないようにしてサブルーチンがインライン展開されていないことを 保証する必要があります。 -(TBT) sub not_inlined () { 23 if $]; @@ -2734,7 +2753,7 @@ =end original -オーバーライドはコンパイル時にモジュールからのみ名前をimportできます-- +オーバーライドはコンパイル時にモジュールからのみ名前を import できます-- 通常の先行宣言では十分ではありません。 しかしながら、C<use subs> プラグマは import 構文を通して先行宣言を行い、 さらにそれらの名前が組み込みのものをオーバーライドできるようにします: @@ -2775,11 +2794,11 @@ =end original ライブラリモジュールは、C<open> だとか C<chdir> のような組み込みの名前を -デフォルトの C<@EXPORT> リストの一部としてexportすべきではありません。 +デフォルトの C<@EXPORT> リストの一部としてexport すべきではありません。 なぜなら、ライブラリを使った人の名前空間を汚し、予期しない動作を 呼び起こす可能性があるからです。 C<@EXPORT_OK> に名前を追加すれば、ユーザーがその名前を陽に指定すれば -import することができ、暗黙の内にimportされてしまうことはありません。 +import することができ、暗黙の内に import されてしまうことはありません。 つまり、 use Module 'open'; @@ -2942,11 +2961,10 @@ =end original -The built-ins C<do>, C<require> and C<glob> can also be overridden, but due -to special magic, their original syntax is preserved, and you don't have -to define a prototype for their replacements. (You can't override the -C<do BLOCK> syntax, though). -(TBT) +組み込みの C<do>, C<require>, C<glob> もオーバーライドできますが、特別な +魔法によって、これらの元の文法は保存され、オーバーライドしたもののために +プロトタイプを定義する必要はありません +(しかし、C<do BLOCK> 文法はオーバーライドできません)。 =begin original Index: docs/perl/5.10.0/perlvar.pod diff -u docs/perl/5.10.0/perlvar.pod:1.6 docs/perl/5.10.0/perlvar.pod:1.7 --- docs/perl/5.10.0/perlvar.pod:1.6 Sun Nov 2 21:59:15 2008 +++ docs/perl/5.10.0/perlvar.pod Wed Dec 3 01:46:55 2008 @@ -691,11 +691,10 @@ =end original -The text matched by the used group most-recently closed (i.e. the group -with the rightmost closing parenthesis) of the last successful search -pattern. -(記憶法: (おそらく) もっとも最近閉じられた、ネストした (Nested) かっこ。) -(TBT) +最近のマッチングに成功した検索パターンのうち、一番最近に閉じられた +使われたグループ(つまり、一番右の閉じかっこのグループ)にマッチングした +テキスト。 +(記憶法: もっとも最近閉じられた、(おそらく) ネストした (Nested) かっこ。) =begin original @@ -2076,9 +2075,8 @@ =end original POSIX::setgid() を使って、実 GID と実効 GID の両方を同時に変更できます。 -Changes to $( require a check to $! -to detect any possible errors after an attempted change. -(TBT) +$( を変更した場合は、変更しようとしたときに起こりうるエラーを検出するために +$! をチェックする必要があります。 =begin original @@ -2924,11 +2922,9 @@ =end original Perl のいくつかの Unicode 設定を反映します。 -See L<perlrun> -documentation for the C<-C> switch for more information about -the possible values. +設定できる値に関するさらなる情報については L<perlrun> の C<-C> オプションを +参照してください。 この変数は Perl 起動時に設定され、その後は読み込み専用です。 -(TBT) =item ${^UTF8CACHE} @@ -3074,11 +3070,11 @@ この変数が真の値にセットされると、Windows での stat() はファイルを オープンしようとはしません。 -This means that the link count cannot be -determined and file attributes may be out of date if additional -hardlinks to the file exist. On the other hand, not opening the file -is considerably faster, especially for files on network drives. -(TBT) +これは、このファイルへの追加のハードリンクが存在する場合、リンクカウントを +決定できませんし、ファイル属性が古いものになるかもしれないことを +意味します。 +一方、ファイルを開かないので、(特にファイルがネットワークドライブにある +場合は)大幅に高速です。 =begin original @@ -3089,12 +3085,10 @@ =end original -This variable could be set in the F<sitecustomize.pl> file to -configure the local Perl installation to use "sloppy" stat() by -default. +デフォルトで「ずさんな」stat() を使うために、この変数は、ローカルな +Perl を設定するための F<sitecustomize.pl> で設定できます。 サイトカスタマイズに関するさらなる情報については L<perlrun> を 参照してください。 -(TBT) =item $EXECUTABLE_NAME @@ -3123,14 +3117,12 @@ =end original -Depending on the host operating system, the value of $^X may be -a relative or absolute pathname of the perl program file, or may -be the string used to invoke perl but not the pathname of the -perl program file. Also, most operating systems permit invoking -programs that are not in the PATH environment variable, so there -is no guarantee that the value of $^X is in PATH. +ホスト OS に依存して、$^X の値は perl プログラムファイルの絶対パスかも +しれませんし、相対パスかもしれませんし、perl を起動するために使われる +文字列ではありますが perl プログラムファイルのパス名ではないかもしれません。 +また、ほとんどの OS は PATH 環境変数にない位置のプログラムを起動することを +許しているので、$^X の値が PATH にある保証はありません。 VMS では、この値はバージョン番号を含む場合も含まない場合もあります。 -(TBT) =begin original @@ -3168,8 +3160,8 @@ It is not safe to use the value of $^X as a path name of a file, as some operating systems that have a mandatory suffix on executable files do not require use of the suffix when invoking -a command. To convert the value of $^X to a path name, use the -following statements: +a command. +$^X の値をパス名に変換するには、以下のコードを使ってください: (TBT) # Build up a set of file names (not command names). @@ -3195,9 +3187,9 @@ the Perl program file to make a copy of it, patch the copy, and then execute the copy, the security-conscious Perl programmer should take care to invoke the installed copy of perl, not the -copy referenced by $^X. The following statements accomplish -this goal, and produce a pathname that can be invoked as a -command or referenced as a file. +copy referenced by $^X. +以下のコードはこの目的を達成し、コマンドとして起動したりファイルとして +参照するためのパス名を作成します。 (TBT) use Config; @@ -3293,10 +3285,9 @@ 自動 split モードが有効の場合、配列 @F には読み込んだ行のフィールドを 含みます。 B<-a> オプションについては L<perlrun> を参照してください。 -This array -is package-specific, and must be declared or given a full package name -if not in package main when running under C<strict 'vars'>. -(TBT) +この配列はパッケージ固有であり、もし C<strict 'vars'> で実行していて +パッケージ main 以外の場合は完全なパッケージ名で定義したり与えたり +しなければなりません。 =item @INC X<@INC>