Kentaro Shirakata
argra****@users*****
2007年 8月 24日 (金) 01:43:16 JST
Index: docs/perl/5.8.8/perlop.pod diff -u docs/perl/5.8.8/perlop.pod:1.2 docs/perl/5.8.8/perlop.pod:1.3 --- docs/perl/5.8.8/perlop.pod:1.2 Thu Aug 23 16:53:01 2007 +++ docs/perl/5.8.8/perlop.pod Fri Aug 24 01:43:16 2007 @@ -379,11 +379,10 @@ C と同様、Perl は B<いつ> 変数がインクリメントまたはデクリメントされるかは 定義されません。 -You just know it will be done sometime -before or after the value is returned. This also means that modifying -a variable twice in the same statement will lead to undefined behaviour. -Avoid statements like: -(TBT) +値が返される前か後のどこかで行われる、ということだけがわかります。 +これは、同じ文である変数を 2 回修正すると、振る舞いが未定義になることを +意味します。 +以下のような文は避けてください: $i = $i ++; print ++ $i + $i ++; @@ -1361,15 +1360,14 @@ =end original -To be pedantic, the comparison is actually C<int(EXPR) == int(EXPR)>, -but that is only an issue if you use a floating point expression; when -implicitly using C<$.> as described in the previous paragraph, the -comparison is C<int(EXPR) == int($.)> which is only an issue when C<$.> -is set to a floating point value and you are not reading from a file. -Furthermore, C<"span" .. "spat"> or C<2.18 .. 3.14> will not do what -you want in scalar context because each of the operands are evaluated -using their integer representation. -(TBT) +とても細かい話をすると、比較は実際には C<int(EXPR) == int(EXPR)> ですが、 +これは浮動小数点数を使うときにだけ問題になります; 前の段落で記述したように +明示的に C<$.> を使ったとき、比較は C<int(EXPR) == int($.)> となり、 +C<$.> に浮動小数点数がセットされ、ファイルから読み込みを行わない場合にのみ +問題になります。 +さらに、C<"span" .. "spat"> や C<2.18 .. 3.14> は、それぞれのオペランドが +整数表現を使って評価されるため、スカラコンテキストでは望みどおりの結果に +なりません。 =begin original @@ -2271,12 +2269,10 @@ =end original -Interpolating an array or slice interpolates the elements in order, -separated by the value of C<$">, so is equivalent to interpolating -C<join $", @array>. +配列やスライスの展開は、要素を順番に、C<$"> の値で分割して展開されるので、 +C<join $", @array> の展開と等価です。 C<@+> のような「句読点」配列は名前が C<@{+}> のように中かっこで囲われている 場合にのみ展開されます。 -(TBT) =begin original @@ -3710,10 +3706,10 @@ =end original -If the terminating identifier is on the last line of the program, you -must be sure there is a newline after it; otherwise, Perl will give the -warning B<Can't find string terminator "END" anywhere before EOF...>. -(TBT) +プログラムの最後の行に終端識別子がある場合、その後には +改行がなければなりません; さもなければ、Perl は +B<Can't find string terminator "END" anywhere before EOF...> という +警告を出します。 =begin original @@ -3918,10 +3914,9 @@ =end original この検索の間、C<\c\> に注意は払われません。 -Thus the second C<\> in C<qq/\c\/> is interpreted as a part of C<\/>, -and the following C</> is not recognized as a delimiter. -Instead, use C<\034> or C<\x1c> at the end of quoted constructs. -(TBT) +従って、C<qq/\c\/> の 2 番目の C<\> は C<\/> の一部として扱われ、 +引き続く C</> はデリミタとして認識されません。 +代わりに、クォート構造の末尾に C<\034> か C<\x1c> を使ってください。 =item Removal of backslashes before delimiters