[perldocjp-cvs 119] CVS update: docs/perl/5.6.1

Back to archive index

Kentaro Shirakata argra****@users*****
2006年 11月 2日 (木) 19:14:23 JST


Index: docs/perl/5.6.1/perlop.pod
diff -u docs/perl/5.6.1/perlop.pod:1.9 docs/perl/5.6.1/perlop.pod:1.10
--- docs/perl/5.6.1/perlop.pod:1.9	Sun Jul  4 03:27:47 2004
+++ docs/perl/5.6.1/perlop.pod	Thu Nov  2 19:14:23 2006
@@ -1,8 +1,14 @@
+=encoding euc-jp
+
 =head1 NAME
 
+=begin original
+
 perlop - Perl operators and precedence
 
-(Perl の演算子と優先順位)
+=end original
+
+Perl の演算子と優先順位
 
 =head1 SYNOPSIS
 
@@ -231,7 +237,7 @@
 
 =head2 The Arrow Operator
 
-(アロー演算子)
+(矢印演算子)
 
 =begin original
 
@@ -279,8 +285,8 @@
 
 =end original
 
-"++" と "--" は、C の場合と同じように動作します。 つまり、
-変数の前に置かれれば、値を返す前に変数をインクリメントまたは
+"++" と "--" は、C の場合と同じように動作します。
+つまり、変数の前に置かれれば、値を返す前に変数をインクリメントまたは
 デクリメントし、後に置かれれば、値を返した後で変数を
 インクリメントまたはデクリメントします。
 
@@ -330,9 +336,10 @@
 
 =end original
 
-二項演算子の "**" は指数演算子です。 この演算子は、単項のマイナスよりも
-結合が強い演算子で、-2**4 は (-2)**4 ではなく、
--(2**4) と解釈されます。(これは C の pow(3) を使って実装されていますので、
+二項演算子の "**" は指数演算子です。
+この演算子は、単項のマイナスよりも結合が強い演算子で、
+-2**4 は (-2)**4 ではなく、-(2**4) と解釈されます。
+(これは C の pow(3) を使って実装されていますので、
 内部的には double で動作します。)
 
 =head2 Symbolic Unary Operators
@@ -379,8 +386,8 @@
 
 =end original
 
-単項演算子の "~" はビットごとの否定を行ないます。 つまり、
-1 の補数を返します。
+単項演算子の "~" はビットごとの否定を行ないます。
+つまり、1 の補数を返します。
 例えば、C<0666 & ~027> は 0640 です。
 (L<Integer Arithmetic> と L<Bitwise String Operators> も参照して下さい。)
 結果の幅はプラットホーム依存であることに注意してください。
@@ -398,9 +405,9 @@
 
 =end original
 
-単項演算子の "+" は、たとえ文字列に対して用いられた場合にも、
-何もしません。 関数名に続けて括弧付きの式を書く場合に、関数の
-引数リストと解釈されないようにするために用いることができます。
+単項演算子の "+" は、たとえ文字列に対して用いられた場合にも、何もしません。
+関数名に続けて括弧付きの式を書く場合に、関数の引数リストと
+解釈されないようにするために用いることができます。
 (下記 L<Terms and List Operators (Leftward)> の例を参照してください。)
 
 =begin original
@@ -412,10 +419,10 @@
 
 =end original
 
-単項演算子の "\" はその後に続くものへのリファレンスを生成し
-ます。L<perlreftut> と L<perlref> を参照してください。 この用法も文字列中の
-バックスラッシュも、後に続くものが解釈されるのを防ぐことになりますが、
-動作を混同しないでください。
+単項演算子の "\" はその後に続くものへのリファレンスを生成します。
+L<perlreftut> と L<perlref> を参照してください。
+この用法も文字列中のバックスラッシュも、後に続くものが展開されるのを
+防ぐことになりますが、動作を混同しないでください。
 
 =head2 Binding Operators
 
@@ -436,13 +443,12 @@
 
 二項演算子の "=~" は、スカラ式をパターンマッチに拘束します。
 デフォルトで $_ の文字列を検索したり、変更したりする演算があります。
-この演算子は、そのような演算を他の文字列に対して行なわせるように
-するものです。 右引数は、検索パターン、置換、文字変換のいずれかです。
-左引数は、デフォルトの $_ の代わりに検索、置換、文字変換の対象となる
-ものです。
+この演算子は、そのような演算を他の文字列に対して行なわせるようにするものです。
+右引数は、検索パターン、置換、文字変換のいずれかです。
+左引数は、デフォルトの $_ の代わりに検索、置換、文字変換の対象となるものです。
 スカラコンテキストで使うと、返り値は一般的に演算の結果が成功したか否かです。
-リストコンテキストでの振る舞いは
-演算子に依存します。詳しくは L</"Regexp Quote-Like Operators"> を参照して下さい。
+リストコンテキストでの振る舞いは演算子に依存します。
+詳しくは L</"Regexp Quote-Like Operators"> を参照して下さい。
 
 =begin original
 
@@ -524,11 +530,12 @@
 
 =end original
 
-二項演算子の "x" は繰り返し演算子です。 スカラコンテキスト
-または左辺値が括弧で括られていない場合は、、左被演算子を
-右被演算子に示す数だけ繰り返したもので構成される文字列を返します。
-リストコンテキストでは、左被演算子が
-括弧で括られていれば、リストを繰り返します。
+二項演算子の "x" は繰り返し演算子です。
+スカラコンテキストまたは左辺値が括弧で括られていない場合は、
+左被演算子を右被演算子に示す数だけ繰り返したもので構成される
+文字列を返します。
+リストコンテキストでは、左被演算子が括弧で括られていれば、
+リストを繰り返します。
 
     print '-' x 80;		# print row of dashes
 
@@ -579,7 +586,8 @@
 =end original
 
 二項演算子の "<<" は左引数の値を、右引数で示すビット数だけ、
-左にシフトした値を返します。 引数は整数でなければなりません。
+左にシフトした値を返します。
+引数は整数でなければなりません。
 (L<Integer Arithmetic> も参照して下さい。)
 
 =begin original
@@ -591,7 +599,8 @@
 =end original
 
 二項演算子の ">>" は左引数の値を、右引数で示すビット数だけ、
-右にシフトした値を返します。 引数は整数でなければなりません。
+右にシフトした値を返します。
+引数は整数でなければなりません。
 (L<Integer Arithmetic> も参照して下さい。)
 
 =head2 Named Unary Operators
@@ -622,10 +631,10 @@
 =end original
 
 リスト演算子 (print() など) や単項演算子 (chdir() など) は、
-すべて次のトークンとして開き括弧が続くと、その演算子と括弧内の
-引数は、通常の関数呼び出しのようにもっとも高い優先順位として
-扱われます。たとえば、名前つき単項演算子は || より
-優先順位が高いので、以下のようになります:
+すべて次のトークンとして開き括弧が続くと、その演算子と括弧内の引数は、
+通常の関数呼び出しのようにもっとも高い優先順位として扱われます。
+たとえば、名前つき単項演算子は || より優先順位が高いので、
+以下のようになります:
 
     chdir $foo    || die;	# (chdir $foo) || die
     chdir($foo)   || die;	# (chdir $foo) || die
@@ -753,8 +762,8 @@
 
 =end original
 
-二項演算子の "==" は左引数が数値的に右引数と等しければ、真を
-返します。
+二項演算子の "==" は左引数が数値的に右引数と等しければ、
+真を返します。
 
 =begin original
 
@@ -830,7 +839,7 @@
 =end original
 
 "lt", "le", "ge", "gt", "cmp" は C<use locale> が有効な場合は
-現在のロカールで指定された辞書(ソート)順が使われます。
+現在のロケールで指定された辞書(ソート)順が使われます。
 L<perllocale> を参照して下さい。
 
 =head2 Bitwise And
@@ -870,8 +879,8 @@
 
 =end original
 
-二項演算子の "^" は、両被演算子のビットごとに排他論理和をと
-って、その結果を返します。
+二項演算子の "^" は、両被演算子のビットごとに排他論理和をとって、
+その結果を返します。
 (L<Integer Arithmetic> と L<Bitwise String Operators> も参照して下さい。)
 
 =head2 C-style Logical And
@@ -887,9 +896,10 @@
 
 =end original
 
-二項演算子の "&&" は、短絡の論理積演算を行ないます。 つまり、
-左被演算子が偽であれば、右被演算子は評価さえ行なわれないということです。
-評価される場合には、スカラかリストかというコンテキストは、
+二項演算子の "&&" は、短絡の論理積演算を行ないます。
+つまり、左被演算子が偽であれば、右被演算子は評価さえ
+行なわれないということです。
+評価される場合には、スカラーかリストかというコンテキストは、
 右被演算子にも及びます。
 
 =head2 C-style Logical Or
@@ -905,9 +915,10 @@
 
 =end original
 
-二項演算子の "||" は、短絡の論理和演算を行ないます。 つまり、
-左被演算子が真であれば、右被演算子は評価さえ行なわれないということです。
-評価される場合には、スカラかリストかというコンテキストは、
+二項演算子の "||" は、短絡の論理和演算を行ないます。
+つまり、左被演算子が真であれば、右被演算子は評価さえ
+行なわれないということです。
+評価される場合には、スカラーかリストかというコンテキストは、
 右被演算子にも及びます。
 
 =begin original
@@ -920,8 +931,8 @@
 
 || 演算子と && 演算子は、単に 0 や 1 を返すのではなく、最後に評価された値を
 返すという点において、C と違っています。
-これにより、かなり一般的に使えるホームディレクトリ ("0" でないとして)
-を探す方法は:
+これにより、かなり一般的に使えるホームディレクトリ ("0" でないとして) を
+探す方法は:
 
     $home = $ENV{'HOME'} || $ENV{'LOGDIR'} ||
 	(getpwuid($<))[7] || die "You're homeless!\n";
@@ -977,7 +988,8 @@
 
 =end original
 
-代入で "or" を使うと、したいことと違うことになります。以下を参照して下さい。
+代入で "or" を使うと、したいことと違うことになります。
+以下を参照して下さい。
 
 =head2 Range Operators
 
@@ -1003,12 +1015,11 @@
 リストコンテキストでは、左の値から右の値まで (1 づつ昇順で) 数えあげた値から
 なる配列を返します。
 左側の値が右側の値より大きい場合は、空配列を返します。
-範囲演算子は、C<foreach (1..10)> のようなループを
-書くときや、配列のスライス演算を行なうときに便利です。
-現状の実装では、C<foreach> ループの式の中で
-範囲演算子を使っても一時配列は作りませんが、
-古い Perl は以下のようなことを書くと、大量のメモリを
-消費することになります:
+範囲演算子は、C<foreach (1..10)> のようなループを書くときや、
+配列のスライス演算を行なうときに便利です。
+現状の実装では、C<foreach> ループの式の中で範囲演算子を使っても
+一時配列は作りませんが、古い Perl は以下のようなことを書くと、
+大量のメモリを消費することになります:
 
     for (1 .. 1_000_000) {
 	# code
@@ -1031,11 +1042,11 @@
 
 =end original
 
-スカラコンテキストで使われたときには、".." はブール値を返します。
+スカラコンテキストで使われたときには、".." は真偽値を返します。
 この演算子は、フリップフロップのように 2 値安定で、
 B<sed> や B<awk> や多くのエディタでの行範囲 (コンマ) 演算子を
 エミュレートするものとなります。
-各々の ".." 演算子がそれぞれに独立して自分のブール状態を管理します。
+各々の ".." 演算子がそれぞれに独立して自分の真偽状態を管理します。
 はじめは、左被演算子が偽である間、演算全体も偽となっています。
 範囲演算子は、いったん左被演算子が真になると、右被演算子が真である間、
 真を返すようになります。
@@ -1072,13 +1083,12 @@
 真としては (1 から始まる) 順に並んだ数値が返されます。
 この通し番号は、新たに範囲が始まるごとにリセットされます。
 範囲の最後の数字には、文字列 "E0" がお尻につけられます。
-これは、数値としては何の影響もありませんが、範囲の終わりで何か特別な
-ことをしたい場合に、目印として使うことができます。
+これは、数値としては何の影響もありませんが、範囲の終わりで何か特別なことを
+したい場合に、目印として使うことができます。
 範囲の始まりで何かしたい場合には、通し番号が 1 よりも大きくなるのを
 待っていればよいでしょう。
 スカラの ".." の被演算子が定数表現であるときは、その被演算子は暗黙に、
-変数 C<$.> (現行番号)
-と比較されることになります。 例:
+変数 C<$.> と比較されることになります。例:
 
 =begin original
 
@@ -1086,7 +1096,7 @@
 
 =end original
 
-スカラ演算子として:
+スカラー演算子として:
 
     if (101 .. 200) { print; }	# print 2nd hundred lines
     next line if (1 .. /^$/);	# skip header lines
@@ -1122,7 +1132,8 @@
 =end original
 
 (リストコンテキストでの) 範囲演算子は、被演算子が文字列であるときには、
-マジカルインクリメントの機能を使います。大文字すべての配列を得るのに
+マジカルインクリメントの機能を使います。
+大文字すべての配列を得るのに
 
     @alphabet = ('A' .. 'Z');
 
@@ -1189,8 +1200,8 @@
 
 =end original
 
-スカラコンテキストかリストコンテキストかという
-状況は、選択された 2 番目もしくは 3 番目の引数にまで伝わります。
+スカラコンテキストかリストコンテキストかという状況は、
+選択された 2 番目もしくは 3 番目の引数にまで伝わります。
 
     $a = $ok ? $b : $c;  # get a scalar
     @a = $ok ? @b : @c;  # get an array
@@ -1268,7 +1279,7 @@
 
 =end original
 
-代入演算子は C の場合と同様の働きをします。 つまり、
+代入演算子は C の場合と同様の働きをします。つまり、
 
     $a += 2;
 
@@ -1412,12 +1423,11 @@
 
 =end original
 
-リスト演算子の右側のものにとって、リスト演算子はとても低い優先順位に
-なります。これによってコンマで区切った式をリスト演算子の引数として
+リスト演算子の右側のものにとって、リスト演算子はとても低い優先順位になります。
+これによってコンマで区切った式をリスト演算子の引数として
 置くことができます。
 これよりも優先順位が低いものは、論理演算子の "and", "or", "not" のみで、
-余分な括弧を付けないリスト演算子の呼び出しを評価するために使うことが
-できます:
+余分な括弧を付けないリスト演算子の呼び出しを評価するために使うことができます:
 
     open HANDLE, "filename"
 	or die "Can't open: $!\n";
@@ -1459,8 +1469,8 @@
 
 二項演算子の "and" は両側の式の論理積を返します。
 これは、優先順位がずっと低いことを除けば && と等価です。
-つまり、これも短絡演算を行ない、右側の式は左側の式が「真」であった
-場合にのみ評価されます。
+つまり、これも短絡演算を行ない、右側の式は左側の式が
+「真」であった場合にのみ評価されます。
 
 =head2 Logical or and Exclusive Or
 
@@ -1488,9 +1498,9 @@
 
 =end original
 
-つまり、これも短絡演算を行ない、右側の式は左側の式が「偽」であった場合に
-のみ評価されます。優先度の関係で、これは代入には使わず、
-フローの制御のみに使うべきです。
+つまり、これも短絡演算を行ない、右側の式は左側の式が
+「偽」であった場合にのみ評価されます。
+優先度の関係で、これは代入には使わず、フローの制御のみに使うべきです。
 
     $a = $b or $c;		# bug: this is wrong
     ($a = $b) or $c;		# really means this
@@ -1552,7 +1562,8 @@
 
 =item 単項 &
 
-アドレス演算子。 ("\" 演算子がリファレンスのために用いられます。)
+アドレス演算子。
+("\" 演算子がリファレンスのために用いられます。)
 
 =begin original
 
@@ -1566,7 +1577,7 @@
 =item 単項 * 
 
 被アドレス参照演算子。
-(Perl の被参照プリフィクス演算子が型づけを行なう: $, @, %, &。)
+(Perl の被参照プリフィクス演算子が型づけを行ないます: $, @, %, &。)
 
 =begin original
 
@@ -1598,11 +1609,11 @@
 =end original
 
 クォートはリテラル値であると考えるのが普通ですが、Perl において、
-クォートは演算子として働き、さまざまな展開やパターンマッチの
-機能を持っています。 そのような動作をさせるのに、Perl は
-慣習的にクォート文字を使っていますが、どの種類のクォートも、
-自分でクォート文字を選べるようになっています。以下の表では、
-{} がその選んだ区切文字のペアを示しています。
+クォートは演算子として働き、さまざまな展開やパターンマッチの機能を
+持っています。
+そのような動作をさせるのに、Perl は慣習的にクォート文字を使っていますが、
+どの種類のクォートも、自分でクォート文字を選べるようになっています。
+以下の表では、{} がその選んだ区切文字のペアを示しています。
 
 =begin original
 
@@ -1686,7 +1697,7 @@
 
 演算子とクォート文字の間に空白を置くことも出来ます。
 ただし、C<#> をクォート文字として使う場合は例外です。
-C<q#foo#> は文字列 C<foo> としてパーズされますが、
+C<q#foo#> は文字列 C<foo> としてパースされますが、
 C<q #foo#> は C<q> 演算子の後にコメントがあるとみなされます。
 この引数は次の行から取られます。つまり、以下のように書けます:
 
@@ -1701,8 +1712,8 @@
 
 =end original
 
-展開が行なわれる構文では、"$" や "@" で始まる変数が、以下の
-エスケープシーケンスと同時に展開されます。
+展開が行なわれる構文では、"$" や "@" で始まる変数が、
+以下のエスケープシーケンスと同時に展開されます。
 文字変換の中では、シーケンスの 11 要素が使われます:
 
 =begin original
@@ -1763,7 +1774,7 @@
 
 C<use locale> が有効の場合、
 C<\l>, C<\L>, C<\u>, C<\U> で使われる大文字小文字テーブルは
-現在のロカールのものが使われます。
+現在のロケールのものが使われます。
 L<perllocale> を参照して下さい。
 C<\N{name}> のドキュメントに関しては、L<charnames> を参照して下さい。
 
@@ -1795,11 +1806,10 @@
 例えば Mac ではこれらは保存され、行端末子のないシステムでは、
 C<"\n"> を print しても実際のデータは何も出力しません。
 一般に、システムで "newline" を意味したいときには C<"\n"> を使いますが、
-正確な文字が必要な場合はリテラルナ ASCII を使います。
+正確な文字が必要な場合はリテラルな ASCII を使います。
 例えば、ほとんどのネットワークプロトコルでは行端末子として
 CR+LF (C<"\015\012"> または C<"\cM\cJ">) を予想し、また好みますが、
-しばしば C<"\012"> だけでも許容し、さらに時々は C<"\015"> だけでも
-認めます。
+しばしば C<"\012"> だけでも許容し、さらに時々は C<"\015"> だけでも認めます。
 もしネットワーク関係で C<"\n"> を使う習慣がついていると、
 いつか痛い目を見ることになるでしょう。
 
@@ -1828,9 +1838,9 @@
 =end original
 
 パターンはさらに、正規表現として展開が行なわれます。
-これは、変数が展開された後の 2 回目のパスで行なわれるので、変数に
-正規表現を含めておき、パターンの中へ展開することができます。
-もし、そうしたくないのであれば、C<\Q> を使うと変数の内容を文字どおりに
+これは、変数が展開された後の 2 回目のパスで行なわれるので、
+変数に正規表現を含めておき、パターンの中へ展開することができます。
+もし、そうしたくないのであれば、C<\Q> を使うと変数の内容を文字通りに
 展開することができます。
 
 =begin original
@@ -1845,9 +1855,8 @@
 
 上記の振る舞いを除けば、Perl は 複数の段階を踏んで展開を行ないません。
 特に、シェルのプログラマの期待とは裏腹に、
-バッククォートはダブルクォートの中では展開されませんし、シングル
-クォートがダブルクォートの中で使われても、変数の展開を妨げる
-ことはI<ありません>。
+バッククォートはダブルクォートの中では展開されませんし、シングルクォートが
+ダブルクォートの中で使われても、変数の展開を妨げることは I<ありません>。
 
 =head2 Regexp Quote-Like Operators
 
@@ -1877,8 +1886,7 @@
 =end original
 
 これは、reset() 演算子を呼び出すごとに 1 度だけしか
-マッチしないことを除いては C</pattern/> による検索と
-全く同じです。
+マッチしないことを除いては C</pattern/> による検索と全く同じです。
 たとえば、ファイルの集まりの中で個々のファイルについて、
 あるものを探すとき、最初の 1 つだけの存在がわかれば良いのであれば、
 この機能を使って最適化をはかることができます。
@@ -1929,7 +1937,8 @@
 C<$_> の文字列が検索対象となります。
 (C<=~> で指定される文字列は、左辺値である必要はありません。
 式を評価した結果でもかまいませんが、C<=~> の優先順位がいくぶん高いことに
-注意してください。)L<perlre> も参照してください。
+注意してください。)
+L<perlre> も参照してください。
 C<use locale> が有効の場合の議論については L<perllocale> を参照して下さい。
 
 オプションには以下のものがあります。
@@ -1946,7 +1955,7 @@
 
 =end original
 
-    c	Do not reset search position on a failed match when /g is in effect.
+    c	/g が有効なとき、マッチングに失敗しても検索位置をリセットしない
     g   グローバルにマッチ、つまり、すべてを探し出す
     i   大文字、小文字を区別しない
     m   文字列を複数行として扱う
@@ -1997,7 +2006,8 @@
 これにより、実行時に再コンパイルが頻繁に起こることが避けられ、
 展開する値がスクリプトの実行中に変化しない場合に有効なものとなります。
 しかし、C</o> を付けることは、パターンの中の変数を変更しないことを
-約束するものです。変更したとしても、Perl がそれに気付くことはありません。
+約束するものです。
+変更したとしても、Perl がそれに気付くことはありません。
 L<"qr/STRING/imosx"> も参照して下さい。
 
 =begin original
@@ -2007,8 +2017,8 @@
 
 =end original
 
-PATTERN を評価した結果が空文字列となった場合には、最
-後にマッチにI<成功した>正規表現が、代わりに使われます。
+PATTERN を評価した結果が空文字列となった場合には、
+最後にマッチに I<成功した> 正規表現が、代わりに使われます。
 
 =begin original
 
@@ -2026,7 +2036,8 @@
 
 C</g>オプションが使われなかった場合、リストコンテキストでのC<m//>は
 パターンの中の括弧で括られた部分列にマッチしたもので構成されるリストを
-返します。これは、(C<$1>, C<$2>, C<$3>, ...) ということです。
+返します。
+これは、(C<$1>, C<$2>, C<$3>, ...) ということです。
 (この場合、C<$1> なども設定されます。
 この点で Perl 4 の動作と違っています。)
 パターンに括弧がない場合は、返り値は成功時はリスト C<(1)> です。
@@ -2120,8 +2131,8 @@
 C<m//g> マッチを C<m/\G.../g> と混ぜることもできます。
 C<\G> は前回の C<m//g> があればその同じ位置でマッチする
 ゼロ文字幅のアサートです。
-C</g> 修飾子なしの場合、
-C<\G> アサートは pos() に固定しますが、マッチはもちろん一度だけ試されます。
+C</g> 修飾子なしの場合、C<\G> アサートは pos() に固定しますが、
+マッチはもちろん一度だけ試されます。
 以前に C</g> マッチを適用していないターゲット文字列に対して
 C</g> なしで C<\G> を使うと、文字列の先頭にマッチする C<\A> アサートを
 使うのと同じことになります。
@@ -2182,8 +2193,8 @@
 C<q> がマッチすることに注意してください。
 また、最後のマッチは C<pos> を更新しないことに注意してください。
 C<pos> は C</g> マッチでのみ更新されます。
-もし最後のマッチで C<p> にマッチした場合、
-かなりの確率で古い (5.6.0 以前の) Perl で実行しているはずです。
+もし最後のマッチで C<p> にマッチした場合、かなりの確率で
+古い (5.6.0 以前の) Perl で実行しているはずです。
 
 =begin original
 
@@ -2381,8 +2392,8 @@
 
 =end original
 
-STRING の有効な文法に関する追加の情報と、
-正規表現の意味論に関する詳細については L<perlre> を参照して下さい。
+STRING の有効な文法に関する追加の情報と、正規表現の意味論に関する
+詳細については L<perlre> を参照して下さい。
 
 =item qx/STRING/
 
@@ -2407,8 +2418,8 @@
 そのコマンドの、標準出力を集めたものが返されます。
 標準エラーは影響を与えません。
 スカラコンテキストでは、(複数行を含むかもしれない)
-1 つの文字列が戻ってきます。コマンドが失敗したときは
-未定義値を返します。
+1 つの文字列が戻ってきます。
+コマンドが失敗したときは未定義値を返します。
 リストコンテキストでは、($/ もしくは $INPUT_RECORD_SEPARATOR を
 どのように設定していても) 行のリストを返します。
 コマンドが失敗したときは空リストを返します。
@@ -2422,8 +2433,8 @@
 =end original
 
 バッククォートは標準エラーには影響を与えないので、
-標準エラーを使いたい場合は
-(シェルが対応しているものとして)シェルのファイル記述子の文法を使ってください。
+標準エラーを使いたい場合は(シェルが対応しているものとして)
+シェルのファイル記述子の文法を使ってください。
 コマンドの STDERR と STDOUT を共に取得したい場合は:
 
     $output = `cmd 2>&1`;
@@ -2483,12 +2494,14 @@
 
 =end original
 
-シングルクォートをデリミタとして使うと Perl のダブルクォート
-展開から保護され、そのままシェルに渡されます:
+シングルクォートをデリミタとして使うと Perl のダブルクォート展開から
+保護され、そのままシェルに渡されます:
 
     $perl_info  = qx(ps $$);            # that's Perl's $$
     $shell_info = qx'ps $$';            # that's the new shell's $$
 
+=begin original
+
 How that string gets evaluated is entirely subject to the command
 interpreter on your system.  On most platforms, you will have to protect
 shell metacharacters if you want them treated literally.  This is in
@@ -2496,6 +2509,18 @@
 See L<perlsec> for a clean and safe example of a manual fork() and exec()
 to emulate backticks safely.
 
+=end original
+
+この文字列がどのように評価されるかは完全にシステムの
+コマンドインタプリタに依存します。
+ほとんどのプラットフォームでは、シェルのメタキャラクタを
+リテラルに扱ってほしい場合はそれを守る必要があります。
+文字をエスケープする方法が明確ではないので、これは理論的には難しいことです。
+逆クォートを安全にエミュレートするために手動で fork() と exec() を
+行うためのきれいで安全な例については L<perlsec> を参照してください。
+
+=begin original
+
 On some platforms (notably DOS-like ones), the shell may not be
 capable of dealing with multiline commands, so putting newlines in
 the string may not get you what you want.  You may be able to evaluate
@@ -2503,17 +2528,50 @@
 separator character, if your shell supports that (e.g. C<;> on many Unix
 shells; C<&> on the Windows NT C<cmd> shell).
 
+=end original
+
+(特に DOS 風の)プラットフォームには、シェルが複数行のコマンドを
+扱うことができないものがあるので、文字列に改行を入れると
+あなたの望まない結果になる場合があります。
+シェルが対応していれば、コマンド分割文字で分割することで
+1 行に複数のコマンドを入れて解釈させることができます
+(この文字は、多くの Unix シェルでは C<;>、Windows NT C<cmd> シェルでは
+C<&> です)。
+
+=begin original
+
 Beginning with v5.6.0, Perl will attempt to flush all files opened for
 output before starting the child process, but this may not be supported
 on some platforms (see L<perlport>).  To be safe, you may need to set
 C<$|> ($AUTOFLUSH in English) or call the C<autoflush()> method of
 C<IO::Handle> on any open handles.
 
+=end original
+
+v5.6.0 以降、Perl は子プロセスの実行前に書き込み用に開いている全ての
+ファイルをフラッシュしようとしますが、これに対応していない
+プラットフォームもあります(L<perlport> を参照してください)。
+安全のためには、C<$|> (English モジュールでは $AUTOFLUSH)をセットするか、
+開いている全てのハンドルに対して C<IO::Handle> の C<autoflush()> メソッドを
+呼び出す必要があります。
+
+=begin original
+
 Beware that some command shells may place restrictions on the length
 of the command line.  You must ensure your strings don't exceed this
 limit after any necessary interpolations.  See the platform-specific
 release notes for more details about your particular environment.
 
+=end original
+
+コマンド行の長さに制限があるコマンドシェルがあることに注意してください。
+全ての必要な変換が行われた後、コマンド文字列がこの制限を越えないことを
+保障する必要があります。
+特定の環境に関するさらなる詳細についてはプラットフォーム固有の
+リリースノートを参照してください。
+
+=begin original
+
 Using this operator can lead to programs that are difficult to port,
 because the shell commands called vary between systems, and may in
 fact not be present at all.  As one example, the C<type> command under
@@ -2523,6 +2581,19 @@
 a glue language, and one of the things it glues together is commands.
 Just understand what you're getting yourself into.
 
+=end original
+
+この演算子を使うと、プログラムの移殖が困難になります。
+呼び出されるシェルコマンドはシステムによって異なり、
+実際全く存在しないこともあるからです。
+一つの例としては、POSIX シェルの C<type> コマンドは
+DOS の C<type> コマンドと大きく異なっています。
+これは、何かを為すために正しい方法として逆クォートを使うことを
+避けるべきであることを意味しません。
+Perl は接着剤のような言語として作られ、接着されるべきものの一つは
+コマンドです。
+単にあなたが何をしようとしているかを理解しておいてください。
+
 =begin original
 
 See L<"I/O Operators"> for more discussion.
@@ -2542,8 +2613,8 @@
 =end original
 
 埋め込まれた空白を区切文字として、STRING から抜き出した
-単語のリストを評価します。これは、以下の式と
-大体同じと考えられます:
+単語のリストを評価します。
+これは、以下の式と大体同じと考えられます:
 
     split(' ', q/STRING/);
 
@@ -2589,8 +2660,8 @@
 
 =end original
 
-よくある間違いは、単語をカンマで区切ったり、複数行の C<qw> 文字列の
-中にコメントを書いたりすることです。
+よくある間違いは、単語をカンマで区切ったり、複数行の C<qw> 文字列の中に
+コメントを書いたりすることです。
 このために、C<usr warnings> プラグマと B<-w> スイッチ
 (つまり、C<$^W> 変数) は STRING に "," や "#" の文字が入っていると
 警告を出します。
@@ -2619,8 +2690,8 @@
 =end original
 
 C<=~> 演算子や C<!~> 演算子によって文字列が指定されていなければ、
-変数 C<$_> が検索され、修正されます。 (C<=~> で指定される文字列は、
-スカラ変数、配列要素、ハッシュ要素、
+変数 C<$_> が検索され、修正されます。
+(C<=~> で指定される文字列は、スカラ変数、配列要素、ハッシュ要素、
 あるいは、これらへの代入式といった左辺値でなければなりません。)
 
 =begin original
@@ -2641,12 +2712,12 @@
 あとで述べますが、区切り文字はスラッシュとは限りません。
 シングルクォートを区切り文字として使った場合には、
 PATTERN にも REPLACEMENT にも変数の展開を行ないません。
-それ以外の場合、文字列の最後を表わすものには見えない $ が PATTERN に含まれると、
-実行時に変数がパターン内に展開されます。
+それ以外の場合、文字列の最後を表わすものには見えない $ が
+PATTERN に含まれると、実行時に変数がパターン内に展開されます。
 最初に変数が展開されるときにだけパターンのコンパイルを行ないたいときには、
 C</o> オプションを使ってください。
-パターンの評価結果が空文字列になった場合には、最後に成功した
-正規表現が代わりに使われます。
+パターンの評価結果が空文字列になった場合には、最後に成功した正規表現が
+代わりに使われます。
 これについてさらに詳しくは、L<perlre> を参照してください。
 C<use locale> が有効の場合の議論については L<perllocale> を参照して下さい。
 
@@ -2697,16 +2768,16 @@
 置き換えることができます。
 先に述べたように、シングルクォートを使うと
 置換文字列での展開はされません (C</e>修飾子を使えば可能です)。
-Perl 4 と違って、 Perl 5 はバッククォートを通常のデリミタとして
-扱います。置換テキストはコマンドとして評価されません。
+Perl 4 と違って、 Perl 5 はバッククォートを通常のデリミタとして扱います。
+置換テキストはコマンドとして評価されません。
 PATTERN を括弧類で括った場合には、
 REPLACEMENT 用にもう一組の区切り文字を用意します。
 これは、括弧類であっても、なくてもかまいません。
 例: C<s(foo)(bar)> や C<< s<foo>/bar/ >>。
 C</e> は置換文字列を完全な Perl の式として扱い、その場所で直ちに解釈します。
 しかし、これはコンパイル時に構文チェックされます。
-二番目の C<e> 修飾子を指定すると
-置換部分がまず Perl の式として C<eval> されます。
+二番目の C<e> 修飾子を指定すると、置換部分がまず Perl の式として
+C<eval> されます。
 
 例:
 
@@ -2767,7 +2838,7 @@
 
 最後の例で \ の代わりに $ を使っているのに注意してください。
 B<sed> と違って、\<I<数字>> の形式はパターンの方でのみ使用できます。
-その他の場所では、$<I<数字>> を使います。 
+その他の場所では、$<I<数字>> を使います。
 
 =begin original
 
@@ -2776,9 +2847,9 @@
 
 =end original
 
-ときには、C</g> を付けるだけでは、
-あなたが望んでいるような形ですべてを変更することが
-できないことがあります。2 つ例を示します:
+ときには、C</g> を付けるだけでは、あなたが望んでいるような形で
+すべてを変更することができないことがあります。
+2 つ例を示します:
 
     # put commas in the right places in an integer
     1 while s/(\d)(\d\d\d)(?!\d)/$1,$2/g;  
@@ -2805,9 +2876,8 @@
 (REPLACEMENTLIST) の文字に変換します。
 置換または削除が行なわれた、文字数を返します。
 =~ 演算子や =! 演算子で文字列が指定されていなければ、$_ の文字列が変換されます。
-(=~ で指定される文字列は、
-スカラ変数、配列要素、ハッシュ要素、あるいは、これらへの
-代入式といった左辺値でなければなりません。)
+(=~ で指定される文字列は、スカラ変数、配列要素、ハッシュ要素、
+あるいはこれらへの代入式といった左辺値でなければなりません。)
 
 =begin original
 
@@ -2859,9 +2929,9 @@
 
 範囲指定という考え方は文字セットが異なる場合はやや移植性に欠けることにも
 注意してください -- そして同じ文字セットでも恐らく期待しているのとは違う
-結果を引き起こすこともあります。健全な原則としては、
-範囲の最初と最後をどちらもアルファベット(大文字小文字も同じ)(a-e, A-E)
-にするか、どちらも数字にする(0-4)ことです。
+結果を引き起こすこともあります。
+健全な原則としては、範囲の最初と最後をどちらもアルファベット
+(大文字小文字も同じ)(a-e, A-E)にするか、どちらも数字にする(0-4)ことです。
 それ以外は全て安全ではありません。
 疑わしいときは、文字セットを完全に書き出してください。
 
@@ -2896,11 +2966,10 @@
 
 C</c> 修飾子が指定されると、SEARCHLIST には補集合が指定されたものと
 解釈されます。
-C</d> 修飾子が指定されると、
-SEARCHLIST に指定されて、REPLACEMENTLIST に対応するものがない
-文字が削除されます。
+C</d> 修飾子が指定されると、SEARCHLIST に指定されて、
+REPLACEMENTLIST に対応するものがない文字が削除されます。
 (これは、SEARCHLIST で見つかったものを削除する、ただそれだけの、ある種の
-B<tr> プログラムの動作よりと比べれば、いく分柔軟なものになっています。
+B<tr> プログラムの動作よりと比べれば、いく分柔軟なものになっています。)
 C</s> 修飾子が指定されると、同じ文字に文字変換された文字の並びを、
 その文字 1 文字だけに圧縮します。 
 
@@ -2918,8 +2987,9 @@
 =end original
 
 C</d> 修飾子が使われると、REPLACEMENTLIST は、常に指定された通りに
-解釈されます。C</d> が指定されない場合で、REPLACEMENTLIST が SEARCHLIST よりも
-短いと、同じ長さになるまで、REPLACEMENTLIST の最後の文字が
+解釈されます。
+C</d> が指定されない場合で、REPLACEMENTLIST が SEARCHLIST よりも短いと、
+同じ長さになるまで、REPLACEMENTLIST の最後の文字が
 繰り返されているものとして扱われます。
 REPLACEMENTLIST が空文字列でのときには、SEARCHLIST と同じになります。
 後者は、ある文字クラスに含まれる文字数を数えるときや、
@@ -2998,12 +3068,12 @@
 
 =end original
 
-何か複数の解釈が可能な表現があった場合、Perl は
-最も確からしい解釈を選択するために B<DWIM> ("Do What I Mean")原則を使います。
+何か複数の解釈が可能な表現があった場合、Perl は最も確からしい解釈を
+選択するために B<DWIM> ("Do What I Mean")原則を使います。
 この戦略は非常に成功したので、Perl プログラマはしばしば
 自分が書いたものの矛盾を疑いません。
-しかし時間がたつにつれて、Perl の概念は作者が本当に意味していたものからかなり
-変わりました。
+しかし時間がたつにつれて、Perl の概念は作者が本当に意味していたものから
+かなり変わりました。
 
 =begin original
 
@@ -3014,10 +3084,10 @@
 
 =end original
 
-この章では Perl がどのようにクォートされた構造を扱うかを明確にしようと
-思います。これを学ぼうとする最もよくある理由は正規表現の迷宮を
-ほぐすためですが、パーズの初期ステップは全てのクォート演算子で同じなので、
-全て同時に扱います。
+この章では Perl がどのようにクォートされた構造を扱うかを
+明確にしようと思います。
+これを学ぼうとする最もよくある理由は正規表現の迷宮をほぐすためですが、
+パーズの初期ステップは全てのクォート演算子で同じなので、全て同時に扱います。
 
 =begin original
 
@@ -3031,11 +3101,12 @@
 =end original
 
 Perl のパーズに関するルールで最も重要なものは以下で述べているうち
-最初のものです。つまり、クォートされた構造を処理するときは、
-Perl はまずその構造の最後を探して、それから中身を解釈します。
-このルールがわかれば、とりあえずはこの章の残りは読み飛ばしても
-かまいません。その他のルールは最初のルールに比べて
-ユーザーの予想に反する頻度ははるかに少ないです。
+最初のものです。
+つまり、クォートされた構造を処理するときは、Perl はまずその構造の
+最後を探して、それから中身を解釈します。
+このルールがわかれば、とりあえずはこの章の残りは読み飛ばしてもかまいません。
+その他のルールは最初のルールに比べてユーザーの予想に反する頻度は
+はるかに少ないです。
 
 =begin original
 
@@ -3084,10 +3155,12 @@
 
 =end original
 
-C</>のように、1 文字でペアでないデリミタを探す場合、C<\\> と C<\/> を
-読み飛ばします。しかし、C<[>のように 1 文字でペアになるデリミタの場合、
-C<\\>, C<\]>, C<\[> を読み飛ばし、さらにネストした C<[>, C<]> も
-読み飛ばします。複数文字のデリミタの場合、何も読み飛ばしません。
+C</>のように、1 文字でペアでないデリミタを探す場合、
+C<\\> と C<\/> を読み飛ばします。
+しかし、C<[>のように 1 文字でペアになるデリミタの場合、
+C<\\>, C<\]>, C<\[> を読み飛ばし、
+さらにネストした C<[>, C<]> も読み飛ばします。
+複数文字のデリミタの場合、何も読み飛ばしません。
 
 =begin original
 
@@ -3108,7 +3181,6 @@
 
 検索する間、構造の文脈は考慮しません。従って、
 
-
     "$hash{"$foo/$bar"}"
 
 =begin original
@@ -3134,7 +3206,8 @@
 =end original
 
 は正しいクォート表現ではありません。
-クォートは最初の C<"> や C</> で終わりとなり、残りの部分は文法エラーとなります。
+クォートは最初の C<"> や C</> で終わりとなり、
+残りの部分は文法エラーとなります。
 C<m//> を終わらせているスラッシュの次に来ているのが C<空白> なので、
 上の例では C<m//x> ではなく、C</x> なしの C<m//> となります。
 従って、中にある C<#> はリテラルな C<#> として扱われます。
@@ -3156,8 +3229,8 @@
 
 第二のパスとして、開始デリミタと終了デリミタの間のテキストは
 安全な場所にコピーされ、C<\> とデリミタの組み合わせから
-C<\> を削除します。開始デリミタと終了デリミタが異なる場合は
-その両方に対してです。
+C<\> を削除します。
+開始デリミタと終了デリミタが異なる場合はその両方に対してです。
 この削除は複数文字デリミタに対しては行われません。
 今までと同様、C<\\> はそのまま残されることに注意してください。
 
@@ -3364,14 +3437,33 @@
 
 =item Optimization of regular expressions
 
+(正規表現の最適化)
+
+=begin original
+
 This step is listed for completeness only.  Since it does not change
 semantics, details of this step are not documented and are subject
 to change without notice.  This step is performed over the finite
 automaton that was generated during the previous pass.
 
+=end original
+
+このステップは完全性のためだけにリストされています。
+これは意味論的には変化がないので、このステップの詳細は文書化されておらず、
+将来予告なしに変更されることがあります。
+このステップはここまでの処理で生成された有限オートマトンに対して
+適用されます。
+
+=begin original
+
 It is at this stage that C<split()> silently optimizes C</^/> to
 mean C</^/m>.
 
+=end original
+
+C<split()> で C</^/> を暗黙に C</^/m> に最適化されるのも
+このステップです。
+
 =back
 
 =head2 I/O Operators
@@ -3407,22 +3499,22 @@
 
 =end original
 
-バッククォートで括られた文字列は、まず、
-ダブルクォート補完のように変数の展開が行なわれます。
+バッククォートで括られた文字列は、まず、ダブルクォート補完のように
+変数の展開が行なわれます。
 その後、シェルでの場合と同じように、外部コマンドとして解釈され、
 そのコマンドの出力がこのバッククォート文字列の値となります。
-スカラコンテキストでは、出力すべてを含む一個の文字列が返されます。
+スカラーコンテキストでは、出力すべてを含む一個の文字列が返されます。
 リストコンテキストでは、出力の 1 行 1 行が個々の要素となるリストが返されます。
 (C<$/> を設定すれば、行の終わりを示す文字を変えることができます。)
 コマンドは、この擬似リテラルが評価されるごとに実行されます。
 コマンドのステータス値は C<$?> に返されます (C<$?> の解釈については、
 L<perlvar> を参照してください)。
-B<csh> での場合とは違って、
-結果のデータに対する変換は行なわれず、改行は改行のままです。
-どのシェルとも違って、シングルクォートがコマンド中の
-変数名を解釈させないようにすることはありません。
-シェルにリテラルなドルマークを渡すには、
-バックスラッシュでエスケープしなければなりません。
+B<csh> での場合とは違って、結果のデータに対する変換は行なわれず、
+改行は改行のままです。
+どのシェルとも違って、シングルクォートがコマンド中の変数名を
+解釈させないようにすることはありません。
+シェルにリテラルなドル記号を渡すには、バックスラッシュで
+エスケープしなければなりません。
 バッククォートの一般形は、C<qx//> です。
 (バッククォートは常にシェル展開されます。
 セキュリティに関しては L<perlsec> を参照して下さい)
@@ -3437,9 +3529,9 @@
 
 =end original
 
-スカラコンテキストで
-山括弧の中のファイルハンドルを評価すると、そのファイルから、
-次の行を読み込むことになります (改行があればそれも含まれます)。
+スカラーコンテキストで山括弧の中のファイルハンドルを評価すると、
+そのファイルから、次の行を読み込むことになります
+(改行があればそれも含まれます)。
 ファイルの最後またはエラーの場合は C<undef> を返します。
 C<$/> が C<undef> に設定されている場合(ファイル吸い込みモードと呼ばれます)
 でファイルが空の場合、
@@ -3462,11 +3554,10 @@
 
 =end original
 
-通常は、返された値を変数に代入しなければなりませんが、
-自動的に代入される場合が 1 つだけあります。 この入力
-シンボルが、while 文(C<for(;;)> の形になっていたとしても)の
-条件式中に単独で現れた場合だけは、
-その値が自動的にグローバル変数 $_ に代入されます。
+通常は、返された値を変数に代入しなければなりませんが、自動的に
+代入される場合が 1 つだけあります。
+この入力シンボルが、while 文(C<for(;;)> の形になっていたとしても)の条件式中に
+単独で現れた場合だけは、その値が自動的にグローバル変数 $_ に代入されます。
 以前の値は破壊されます。
 (これは、奇妙に思えるかもしれませんが、ほとんどすべての Perl スクリプトで
 これが必要になることでしょう。)
@@ -3524,9 +3615,9 @@
 =end original
 
 その他のブール値コンテキストでは、明示的な C<defined> や比較なしに
-C<< <I<filehandle>> >> を使うと、
-C<use warnings> プラグマや B<-w> コマンドラインスイッチ
-(C<$^W> 変数) が有効なときには、警告を発生させます。
+C<< <I<filehandle>> >> を使うと、C<use warnings> プラグマや
+B<-w> コマンドラインスイッチ (C<$^W> 変数) が有効なときには、
+警告を発生させます。
 
 =begin original
 
@@ -3544,9 +3635,8 @@
 ローカルな名前でこれらのグローバルな名前が見えなくなっている
 パッケージを除けば、使用することができます。)
 その他のファイルハンドルは、open() 関数などで作ることができます。
-これに関する詳細については
-L<perlopentut> と
-L<perlfunc/open> を参照して下さい。
+これに関する詳細については L<perlopentut> と L<perlfunc/open> を
+参照して下さい。
 
 =begin original
 
@@ -3558,9 +3648,9 @@
 =end original
 
 <FILEHANDLE> がリストを必要とするコンテキストで用いられると、
-1 要素に 1 行の入力行すべてからなるリストが返されます。 
-これを使うと簡単にかなり大きなデータになってしまいますので、注意を
-要します。
+1 要素に 1 行の入力行すべてからなるリストが返されます。
+これを使うと簡単にかなり大きなデータになってしまいますので、
+注意を要します。
 
 =begin original
 
@@ -3586,10 +3676,11 @@
 
 ヌルファイルハンドル <> は特別で、B<sed> や B<awk> の動作を
 エミュレートするために使われます。
-<> からの入力は、標準入力からか、
-コマンドライン上に並べられた個々のファイルから行なわれます。
-動作の概要は、以下のようになります。 最初に <> が評価されると、
-配列 @ARGV が調べられ、空であれば、C<$ARGV[0]> に "-"を設定します。
+<> からの入力は、標準入力からか、コマンドライン上に並べられた個々の
+ファイルから行なわれます。
+動作の概要は、以下のようになります。
+最初に <> が評価されると、配列 @ARGV が調べられ、空であれば、
+C<$ARGV[0]> に "-"を設定します。
 これは、open されるとき標準入力となります。
 その後、配列 @ARGV がファイル名のリストとして処理されます。
 
@@ -3624,10 +3715,11 @@
 
 =end original
 
-わずらわしく書かなくても、動作します。
-実際に @ARGV を shift しますし、その時点のファイル名を
-変数 $ARGV に入れています。 また、内部的にファイルハンドル ARGV を使っていて、
-<> はマジカルな <ARGV> の同義語となっています。
+但し、わずらわしく書かなくても、動作します。
+実際に @ARGV を shift しますし、その時点のファイル名を変数 $ARGV に
+入れています。
+また、内部的にファイルハンドル ARGV を使っていて、<> はマジカルな
+<ARGV> の同義語となっています。
 (上記の擬似コードは、<ARGV> を通常のものとして扱っているので、
 うまく動作しません。)
 
@@ -3643,8 +3735,9 @@
 最終的に、@ARGV に扱いたいと思っているファイル名が含まれるのであれば、
 最初に <> を評価する前に @ARGV を変更することも可能です。
 行番号 (C<$.>) は、入力ファイルがあたかも 1 つの大きなファイルで
-あるかのように、続けてカウントされます。個々
-のファイルごとにリセットする方法は、L<perlfunc/eof> の例を参照してください。
+あるかのように、続けてカウントされます。
+個々のファイルごとにリセットする方法は、L<perlfunc/eof> の例を
+参照してください。
 
 =begin original
 
@@ -3654,8 +3747,8 @@
 =end original
 
 最初から @ARGV に自分でファイルのリストを設定してもかまいません。
-以下は @ARGV が与えられなかったときに
-全てのテキストファイルを @ARGV に設定します。
+以下は @ARGV が与えられなかったときに全てのテキストファイルを
+ @ ARGV に設定します。
 
     @ARGV = grep { -f && -T } glob('*') unless @ARGV;
 
@@ -3702,9 +3795,9 @@
 =end original
 
 シンボル <> がファイルの最後で C<undef> を返すのは一度きりです。
-そのあとでもう一度呼び出すと、新たに別の @ARGV を処理するものと
-みなされ、その時に @ARGV を設定しなおしていないと、STDIN からの
-入力を読み込むことになります。
+そのあとでもう一度呼び出すと、新たに別の @ARGV を処理するものとみなされ、
+その時に @ARGV を設定しなおしていないと、STDIN からの入力を
+読み込むことになります。
 
 =begin original
 
@@ -3716,8 +3809,8 @@
 =end original
 
 山括弧の中の文字列が (<$foo> のような) 単純スカラ変数を囲っていれば、
-その変数が入力を行なうファイルハンドルの名前そのもの、
-名前への型グロブ、名前へのリファレンスのいずれかを示しているとみなされます。
+その変数が入力を行なうファイルハンドルの名前そのもの、名前への型グロブ、
+名前へのリファレンスのいずれかを示しているとみなされます。
 
     $fh = \*STDIN;
     $line = <$fh>;
@@ -3736,15 +3829,14 @@
 
 =end original
 
-山括弧の中の文字列がファイルハンドルでも
-ファイルハンドル名、typeglob、typeglob リファレンスのいずれかが
-入った単純スカラ変数でもなければ、
+山括弧の中の文字列がファイルハンドルでもファイルハンドル名、型グロブ、
+型グロブリファレンスのいずれかが入った単純スカラ変数でもなければ、
 グロブを行なうファイル名のパターンと解釈され、コンテキストによって
 ファイル名のリストか、そのリストの次のファイル名が返されます。
 この区別は単に構文的に行われます。
 C<< <$x> >> は常に間接ハンドルから readline() しますが、
 C<< <$hash{key}> >> は常に glob() します。
-$x は単純スカラ変数ですが、C<$hash{key}> は違う(ハッシュ要素)からです。
+$x は単純スカラー変数ですが、C<$hash{key}> は違う(ハッシュ要素)からです。
 
 =begin original
 
@@ -3760,10 +3852,10 @@
 
 まず、1 段階だけダブルクォート展開が行なわれますが、前の段落に書いた
 間接ファイルハンドルと同じになる、C<< <$foo> >> のようには書けません。
-(Perl の古いバージョンでは、
-ファイル名グロブと解釈させるために C<< <${foo}> >> のように
-中括弧を入れていました。最近ではより明確にするために、C<glob($foo)> と
-内部関数を呼ぶこともできます。
+(Perl の古いバージョンでは、ファイル名グロブと解釈させるために
+C<< <${foo}> >> のように中括弧を入れていました。
+最近ではより明確にするために、C<glob($foo)> と内部関数を
+呼ぶこともできます。
 おそらく、まず、こちらの方で試すのが正解でしょう。) 例:
 
     while (<*.c>) {
@@ -3796,6 +3888,8 @@
 
     chmod 0644, <*.c>;
 
+=begin original
+
 A (file)glob evaluates its (embedded) argument only when it is
 starting a new list.  All values must be read before it will start
 over.  In list context, this isn't important because you automatically
@@ -3808,19 +3902,55 @@
 you're expecting a single value from a glob, it is much better to
 say
 
+=end original
+
+(ファイル)グロブは新しいリストを開始するときにだけ(組み込みの)引数を
+評価します。
+全ての値は開始する前に読み込んでいなければなりません。
+これはリストコンテキストでは、とにかく自動的に全てを取り込むので
+重要ではありません。
+しかし、スカラーコンテキストではこの演算子は呼び出された時の
+次の値か、リストがなくなったときには C<undef> を返します。
+ファイルハンドルを読み込む場合は、グロブが C<while> の条件部にある場合は
+自動的な C<defined> が生成されます。
+なぜならそうしないと、本来の glob の返り値 (F<0> というファイル) が
+ループを終了させるからです。
+ここでも、C<undef> は一度だけ返されます。
+従って、もしグロブから一つの値だけを想定している場合、
+以下のように書くことが:
+
     ($file) = <blurch*>;
 
+=begin original
+
 than
 
+=end original
+
+以下のように書くよりはるかに良いです:
+
     $file = <blurch*>;
 
+=begin original
+
 because the latter will alternate between returning a filename and
 returning false.
 
+=end original
+
+なぜなら後者はファイル名を返す場合と偽を返す場合があるからです。
+
+=begin original
+
 It you're trying to do variable interpolation, it's definitely better
 to use the glob() function, because the older notation can cause people
 to become confused with the indirect filehandle notation.
 
+=end original
+
+変数変換に挑戦する場合、明らかに glob() 関数を使う方が良いです。
+なぜなら古い表記は間接ファイルハンドル表記と混乱するかも知れないからです。
+
     @files = glob("$dir/*.[ch]");
     @files = glob($files[$i]);
 
@@ -3840,10 +3970,9 @@
 =end original
 
 C と同じように Perl でも、演算子に対するすべての引数がスタティックで、
-副作用がないと判断できれば、コンパイル時に式の評価を
-行なってしまいます。
+副作用がないと判断できれば、コンパイル時に式の評価を行なってしまいます。
 特に、変数置換の無いリテラルどうしの文字列連結はコンパイル時に行なわれます。
-バックスラッシュの解釈もコンパイル時に行なわれます。 
+バックスラッシュの解釈もコンパイル時に行なわれます。
 
     'Now is the time for all' . "\n" .
 	'good men to come to.'
@@ -3855,7 +3984,7 @@
 
 =end original
 
-と書いても、内部的に 1 つの文字列になります。 同様に
+と書いても、内部的に 1 つの文字列になります。同様に
 
     foreach $file (@filenames) {
 	if (-s $file > 5 + 100 * 2**16) {  }
@@ -3917,7 +4046,7 @@
 =end original
 
 ビット列を操作したい場合は、確実にビット列が渡されるようにしてください:
-オペランドが数字の場合、B<数値>ビット単位演算を仮定します。
+オペランドが数字の場合、B<数値> ビット単位演算を仮定します。
 明示的に演算の型を指定するときには、以下の例のように
 C<""> か C<0+> を使ってください。
 
@@ -3950,8 +4079,9 @@
 
 =end original
 
-デフォルトでは、Perl は演算を浮動小数で行なわなければ
-ならないものとしていますが、(もしそうしたいなら)
+デフォルトでは、Perl は演算を浮動小数で行なわなければならないものと
+しています。
+しかし、(もしそうしたいなら)
 
     use integer;
 
@@ -3964,7 +4094,8 @@
 =end original
 
 と書けば、その場所から現在の BLOCK の終わりまでは、整数演算を
-行なってよいと、コンパイラに指示することができます。 内部の BLOCK で、
+行なってよいと、コンパイラに指示することができます。
+内部の BLOCK で、
 
     no integer;
 
@@ -3980,8 +4111,9 @@
 
 と書けば、その BLOCK の終わりまでは、指示を取り消すことになります。
 これは全てを整数だけを使って処理することを意味するわけではないことに
-注意してください。これは単に Perl が整数を使いたいと思ったときに
-使うかもしれない、というだけです。
+注意してください。
+これは単に Perl が整数を使いたいと思ったときに使うかもしれない、
+というだけです。
 例えば、C<use integer> の指定があっても、C<sqrt(2)> とすると、
 C<1.4142135623731> といった結果が返ってきます。
 
@@ -4021,8 +4153,8 @@
 
 =end original
 
-C<use integer> が整数演算を提供する一方、
-数をある桁で自動的に丸めたり切り捨てたりする機構はありません。
+C<use integer> が整数演算を提供する一方、数を特定の桁で自動的に丸めたり
+切り捨てたりする機構はありません。
 数を丸めるには、sprintf() や printf() を使うのが一番簡単な方法です。
 L<perlfaq4> を参照して下さい。
 
@@ -4075,8 +4207,8 @@
 
 =end original
 
-POSIX モジュール(Perl 標準配布パッケージの一部) は
-ceil(), floor() 及びその他の数学関数や三角関数を実装しています。
+POSIX モジュール(Perl 標準配布パッケージの一部) は ceil(), floor() 及び
+その他の数学関数や三角関数を実装しています。
 Math::Complex モジュール(Perl 標準配布パッケージの一部)は
 実数と虚数の両方で動作する数学関数を定義しています。
 Math::Complex は POSIX ほど効率的ではありませんが、
@@ -4093,7 +4225,7 @@
 =end original
 
 金融アプリケーションにおける丸めは深刻な影響を与える可能性があり、
-使用する丸めメソッドは指定された制度で行われるべきです。
+使用する丸めメソッドは指定された精度で行われるべきです。
 このような場合、Perl が使用するシステム丸めを信用せず、
 代わりに自分自身で丸め関数を実装するべきです。
 
@@ -4132,8 +4264,9 @@
 =end original
 
 (メモリと CPU 時間のみに依存する)無制限か固定の精度での計算ができる
-モジュールがいくつかあります。さらに外部 C ライブラリを使って
-より速い実装を提供する非標準のモジュールもあります。
+モジュールがいくつかあります。
+さらに外部 C ライブラリを使ってより速い実装を提供する
+非標準のモジュールもあります。
 
 =begin original
 
@@ -4172,3 +4305,4 @@
 うまく選んでください。
 
 =cut
+


perldocjp-cvs メーリングリストの案内
Back to archive index