argra****@users*****
argra****@users*****
2008年 12月 17日 (水) 04:05:28 JST
Index: docs/perl/5.10.0/perl.pod diff -u docs/perl/5.10.0/perl.pod:1.3 docs/perl/5.10.0/perl.pod:1.4 --- docs/perl/5.10.0/perl.pod:1.3 Tue Dec 16 21:43:45 2008 +++ docs/perl/5.10.0/perl.pod Wed Dec 17 04:05:27 2008 @@ -990,7 +990,7 @@ =end original -Larry Wall <lwall****@netla*****>, 多くの方の助力を得つつ。 +Larry Wall <larry****@wall*****>; 多くの方の助力を得つつ。 =begin original Index: docs/perl/5.10.0/perlapio.pod diff -u docs/perl/5.10.0/perlapio.pod:1.5 docs/perl/5.10.0/perlapio.pod:1.6 --- docs/perl/5.10.0/perlapio.pod:1.5 Thu Dec 4 02:11:11 2008 +++ docs/perl/5.10.0/perlapio.pod Wed Dec 17 04:05:27 2008 @@ -176,8 +176,9 @@ choose to do things. For USE_PERLIO PerlIO * has an extra layer of indirection - it is a pointer-to-a-pointer. This allows the PerlIO * to remain with a known value while swapping the implementation around -underneath I<at run time>. In this case all the above are true (but -very simple) functions which call the underlying implementation. +underneath I<at run time>. +この場合上述の全ては基礎となる実装を呼び出す本当の(しかしとても単純な) +関数です。 (TBT) =begin original @@ -210,8 +211,7 @@ "perlio.h" は(効率のために)薄い層になっているので、これらの関数の意味は 基礎となる実装に若干依存しています。 -Where these variations are understood they are noted below. -(TBT) +変化があると分かっているところは以下に言及しています。 =begin original @@ -260,8 +260,8 @@ エラーの場合は C<NULL> を返し、C<errno> をセットします。 There may be an implementation limit on the number of open handles, which may be lower -than the limit on the number of open files - C<errno> may not be set -when C<NULL> is returned if this limit is exceeded. +than the limit on the number of open files - +この制限を越えて C<NULL> を返されると、C<errno> はセットされません。 (TBT) =item B<PerlIO_reopen(path,mode,f)> @@ -285,10 +285,9 @@ =end original -Perl prefers to C<dup> the new low-level descriptor to the descriptor -used by the existing PerlIO. +Perl は存在する PerlIO によって使われている記述子よりも、新しい低レベル +記述子を C<dup> することを好みます。 これは将来この関数の振る舞いになるかもしれません。 -(TBT) =item B<PerlIO_printf(f,fmt,...)>, B<PerlIO_vprintf(f,fmt,a)> @@ -329,12 +328,10 @@ fread() および fwrite() に対応する機能を持ちますが、引数と 返り値は異なります。 -The PerlIO_read() and -PerlIO_write() signatures have been modeled on the more sane low level -read() and write() functions instead: The "file" argument is passed -first, there is only one "count", and the return value can distinguish -between error and C<EOF>. -(TBT) +PerlIO_read() と PerlIO_write() のシグネチャは、代わりによりまともな +低レベルの read() と write() の関数をモデルにしています: +"file" 引数は最初に渡され、count" は 1 つだけで、返り値はエラーと +C<EOF> とで区別できます。 =begin original @@ -488,12 +485,13 @@ =end original fflush() に対応します。 -Sends any buffered write data to the -underlying file. If called with C<NULL> this may flush all open -streams (or core dump with some USE_STDIO implementations). Calling -on a handle open for read only, or on which last operation was a read -of some kind may lead to undefined behaviour on some USE_STDIO -implementations. The USE_PERLIO (layers) implementation tries to +バッファリングされた書き込みデータをファイルに送ります。 +引数 C<NULL> で呼び出すと、オープンしている全てのストリームを +フラッシュします(USE_STDIO 実装にはコアダンプするものもあります)。 +読み込み専用でオープンしているか、最後の操作がなんらかの読み込みである +ハンドルで呼び出すと、USE_STDIO 実装には未定義の振る舞いとなるものが +あります。 +The USE_PERLIO (layers) implementation tries to behave better: it flushes all open streams when passed C<NULL>, and attempts to retain data on read streams either in the buffer or by seeking the handle to the current logical position. @@ -853,13 +851,11 @@ 以下に挙げる呼び出しは、それぞれ Configure (あるいはその他の実装では これと等価なもの) で定義される FILE_xxx マクロに対応しています。 このセクションでは、perl-core の振る舞いの詳細、PerlIO のマッピングの実装、 -or writing code which can make use of the "read ahead" that -has been done by the IO system in the same way perl does -についてのみ注目します。 +また perl がする同じ方法で IO システムによって行われている +「先行読み込み」を使えるようなコードを書くことについてのみ注目します。 これらのインターフェースを使うコードは、もしハンドルがこれらに 対応していないなら、伝統的な方法で準備しておく必要があることに 注意してください。 -(TBT) =over 4 @@ -1016,12 +1012,10 @@ =end original -バッファの I<トータルバイト数> を返します; -this is neither the -number that can be read, nor the amount of memory allocated to the -buffer. Rather it is what the operating system and/or implementation -happened to C<read()> (or whatever) last time IO was requested. -(TBT) +バッファの I<合計バイト数> を返します; +これは読み込み可能な数や、バッファに割り当てられたメモリ量ではありません。 +むしろ、最後に I/O が要求されたときに OS や 実装が C<read()> (あるいは +そのようなもの) を行ったものです。 =back @@ -1113,13 +1107,12 @@ =end original -On Unix these calls probably have no effect whatsoever. Elsewhere -they alter "\n" to CR,LF translation and possibly cause a special text -"end of file" indicator to be written or honoured on read. The effect -of making the call after doing any IO to the handle depends on the -implementation. (It may be ignored, affect any data which is already -buffered as well, or only apply to subsequent data.) -(TBT) +Unix ではこれらの呼び出しはおそらく何の効果もありません。 +それ以外では "\n" を CR,LF に変換し、特別なテキスト「ファイル終端」指示子を +読み書き時に使います。 +ハンドルに対して I/O を行った後に呼び出した場合の効果は実装に依存します。 +(無視されるかもしれませんし、既にバッファに入っているデータにも +適用されるかもしれませんし、以後のデータにだけ適用されるかもしれません。) =item PerlIO_debug(fmt,...) @@ -1132,11 +1125,10 @@ =end original -PerlIO_debug is a printf()-like function which can be used for -debugging. No return value. Its main use is inside PerlIO where using -real printf, warn() etc. would recursively call PerlIO and be a -problem. -(TBT) +PerlIO_debug は、デバッグに使える printf() 風の関数です。 +返り値はありません。 +主な用途は、実 printf, warn() などが使っている PerlIO の内部で、PerlIO の +再帰呼び出しが問題になるようなところです。 =begin original Index: docs/perl/5.10.0/perlguts.pod diff -u docs/perl/5.10.0/perlguts.pod:1.1 docs/perl/5.10.0/perlguts.pod:1.2 --- docs/perl/5.10.0/perlguts.pod:1.1 Sat Dec 6 02:16:12 2008 +++ docs/perl/5.10.0/perlguts.pod Wed Dec 17 04:05:27 2008 @@ -522,8 +522,7 @@ =end original -But won't work when called as: -(TBT) +しかし、以下のように呼び出すと動作しません: $x = undef; foo($x); @@ -534,8 +533,8 @@ =end original -So to repeat always use SvOK() to check whether an sv is defined. -(TBT) +従って、sv が定義されているかをチェックするために、毎回繰り返して +SvOK() を使います。 =begin original @@ -649,8 +648,7 @@ =end original -This is best demonstrated by example: -(TBT) +これは例による最良の実演です: % ./perl -Ilib -MDevel::Peek -le '$a="12345"; $a=~s/.//; Dump($a)' SV = PVIV(0x8128450) at 0x81340f0 @@ -1022,8 +1020,7 @@ =end original -And more miscellaneous functions: -(TBT) +さらに様々な関数があります: void hv_clear(HV*); void hv_undef(HV*); @@ -1136,9 +1133,8 @@ =end original -The last step was added in version 5.6 to improve distribution of -lower bits in the resulting hash value. -(TBT) +最後のステップは、結果となるハッシュ値の低位ビットの分散を改良するために +バージョン 5.6 で追加されました。 =begin original @@ -1250,6 +1246,8 @@ =head2 AVs, HVs and undefined values +(AV, HV と未定義値) + =begin original Sometimes you have to store undefined values in AVs or HVs. Although @@ -1269,8 +1267,7 @@ =end original -For example, intuition tells you that this XS code: -(TBT) +例えば、直感ではこの XS コードは: AV *av = newAV(); av_store( av, 0, &PL_sv_undef ); @@ -1281,8 +1278,7 @@ =end original -is equivalent to this Perl code: -(TBT) +以下の Perl コードと等価です: my @av; $av[0] = undef; @@ -1947,8 +1943,7 @@ =end original -As that is multiple C statements it is quite common so see this idiom instead: -(TBT) +これは C の複数文なので、代わりにこの慣用法がとても一般的です: SV *tmp = sv_2mortal(newSViv(an_integer)); @@ -1967,9 +1962,8 @@ =end original 揮発性の変数を生成するに当たっては十分注意すべきです。 -もし、同じ -変数を複合コンテキストの中で揮発性にしたり、ある変数を複数回揮 -発性にしてしまったりすればおかしな自体が起こるかもしれません。 +もし、同じ変数を複合コンテキストの中で揮発性にしたり、ある変数を複数回 +揮発性にしてしまったりすればおかしな自体が起こるかもしれません。 Thinking of "Mortalization" as deferred C<SvREFCNT_dec> should help to minimize such problems. For example if you are passing an SV which you I<know> has high enough REFCNT @@ -1992,6 +1986,8 @@ =head2 Stashes and Globs +(スタッシュとグロブ) + =begin original A B<stash> is a hash that contains all variables that are defined @@ -2007,7 +2003,7 @@ 入っているハッシュのことです。 ハッシュテーブルにあるそれぞれの key は、(同じ名前のすべての異なる型の オブジェクトで共有される) シンボル名で、ハッシュテーブルの個々の -value は、(グローバル値のための) GV と呼ばれます。 +値は、(グローバル値のための) GV と呼ばれます。 GV には、以下のものを含む (これらに限りませんが)、その名前の様々な オブジェクトへのリファレンスが次々に入ることになります。