argra****@users*****
argra****@users*****
2010年 7月 23日 (金) 02:45:40 JST
Index: docs/perl/5.12.1/perlop.pod diff -u docs/perl/5.12.1/perlop.pod:1.1 docs/perl/5.12.1/perlop.pod:1.2 --- docs/perl/5.12.1/perlop.pod:1.1 Sun May 30 03:02:54 2010 +++ docs/perl/5.12.1/perlop.pod Fri Jul 23 02:45:40 2010 @@ -1958,6 +1958,8 @@ =head2 Yada Yada Operator X<...> X<... operator> X<yada yada operator> +(ヤダヤダ演算子) + =begin original The yada yada operator (noted C<...>) is a placeholder for code. Perl @@ -1966,10 +1968,9 @@ =end original -The yada yada operator (noted C<...>) is a placeholder for code. Perl -parses it without error, but when you try to execute a yada yada, it -throws an exception with the text C<Unimplemented>: -(TBT) +(C<...> と書く) ヤダヤダ演算子はコードのためのプレースホルダです。 +Perl はこれをエラーを出すことなくパースしますが、ヤダヤダを +実行しようとすると、C<Unimplemented> の文章と共に例外を発生させます: sub unimplemented { ... } @@ -1985,9 +1986,8 @@ =end original -You can only use the yada yada to stand in for a complete statement. -These examples of the yada yada work: -(TBT) +ヤダヤダは完全な文の代わりにのみ使えます。 +以下の例のヤダヤダは動作します: { ... } @@ -2014,11 +2014,9 @@ =end original -The yada yada cannot stand in for an expression that is part of a -larger statement since the C<...> is also the three-dot version of the -range operator (see L<Range Operators>). These examples of the yada -yada are still syntax errors: -(TBT) +C<...> は範囲演算子(L<Range Operators> を参照してください)の 3 ドット版でも +あるので、より大きな文の一部の式としては使えません。 +以下の例のヤダヤダは文法エラーになります: print ...; @@ -2038,14 +2036,13 @@ =end original -There are some cases where Perl can't immediately tell the difference -between an expression and a statement. For instance, the syntax for a -block and an anonymous hash reference constructor look the same unless -there's something in the braces that give Perl a hint. The yada yada -is a syntax error if Perl doesn't guess that the C<{ ... }> is a -block. In that case, it doesn't think the C<...> is the yada yada -because it's expecting an expression instead of a statement: -(TBT) +式と文との違いをすぐに説明できない場合があります。 +例えば、ブロックと無名ハッシュリファレンスのコンストラクタは、 +Perl にヒントを与える中かっこがなければ同じに見えます。 +ヤダヤダは Perl が C<{ ... }> をブロックと判断できなかった場合は +文法エラーとなります。 +この場合、文ではなく式と推測するので、C<...> はヤダヤダとは +判断されません: my @transformed = map { ... } @input; # syntax error @@ -2056,9 +2053,9 @@ =end original -You can use a C<;> inside your block to denote that the C<{ ... }> is -a block and not a hash reference constructor. Now the yada yada works: -(TBT) +C<{ ... }> がブロックであって、ハッシュリファレンスのコンストラクタでは +ないことを示すためにブロックの中で C<;> を使えます。 +これでヤダヤダは動作します: my @transformed = map {; ... } @input; # ; disambiguates @@ -2443,10 +2440,9 @@ =end original -C<\N{U+I<wide hex char>}> means the Unicode character whose Unicode ordinal -number is I<wide hex char>. +C<\N{U+I<wide hex char>}> は、Unicode 番号が I<wide hex char> の +Unicode 文字を意味します。 C<\N{name}> の文書に関しては、L<charnames> を参照して下さい。 -(TBT) =begin original @@ -2458,9 +2454,8 @@ B<注意>: C やその他の言語と違って、Perl は垂直タブ (VT - ASCII 11) のための \v エスケープシーケンスはありませんが、C<\ck> または C<\x0b> が使えます。 -(C<\v> -does have meaning in regular expression patterns in Perl, see L<perlre>.) -(TBT) +(C<\v> は Perl の正規表現パターンでは意味があります; L<perlre> を +参照してください。) =begin original @@ -2555,8 +2550,8 @@ =end original 展開が行なわれる構文では、"C<$>" や "C<@>" で始まる変数が展開されます。 -Subscripted variables such as C<$a[3]> or -C<< $href->{key}[0] >> もまた配列やハッシュのスライスのように展開されます。 +C<$a[3]> や C<< $href->{key}[0] >> のような添え字付き変数もまた +配列やハッシュのスライスのように展開されます。 しかし、C<< $obj->meth >> のようなメソッド呼び出しは展開されません。 =begin original @@ -2854,9 +2849,7 @@ これは "/" を含むパス名にパターンパッチを行なうときに便利でしょう。 LTS (楊枝偏執症候群) を避けるためにも。 "'" がデリミタの場合、PATTERN に対する展開は行われません。 -When using a character valid in an identifier, whitespace is required -after the C<m>. -(TBT) +識別子として有効な文字を使う場合、C<m> の後に空白が必要です。 =begin original @@ -4065,7 +4058,7 @@ =end original -ヒヤドキュメントのの内容は、文字列がバッククォートで +ヒアドキュメントのの内容は、文字列がバッククォートで 埋め込まれているかのように扱われます。 したがって、その内容、はダブルクォートされているかのように変数展開され、 その後シェル経由で実行され、実行された結果になります。 @@ -4082,7 +4075,7 @@ =end original -複数のヒヤドキュメントを連続してスタックすることも可能です: +複数のヒアドキュメントを連続してスタックすることも可能です: print <<"foo", <<"bar"; # you can stack them I said foo. @@ -4121,7 +4114,7 @@ =end original -ヒヤドキュメントから行終端子を除去したい場合は、C<chomp()> を使ってください。 +ヒアドキュメントから行終端子を除去したい場合は、C<chomp()> を使ってください。 chomp($string = <<'END'); This is a string. @@ -4321,12 +4314,12 @@ =end original -構造がヒヤドキュメントの場合、終了デリミタは内容として終端文字列を持つ +構造がヒアドキュメントの場合、終了デリミタは内容として終端文字列を持つ 行です。 従って、C<<<EOF> は、C<"\n"> の直後の、終端行の最初の列から始まる C<EOF> で 終端します。 -ヒヤドキュメントの終端行を探すとき、読み飛ばされるものはありません。 -言い換えると、ヒヤドキュメント文法以降の行は、1 行毎に終端文字列と +ヒアドキュメントの終端行を探すとき、読み飛ばされるものはありません。 +言い換えると、ヒアドキュメント文法以降の行は、1 行毎に終端文字列と 比較されます。 =begin original @@ -4342,7 +4335,7 @@ =end original -ヒヤドキュメント以外の構造では、1 文字が開始デリミタと終了デリミタとして +ヒアドキュメント以外の構造では、1 文字が開始デリミタと終了デリミタとして 使われます。 開始デリミタが組の開き文字(C<(>, C<[>, C<{>, C<< < >> のいずれか)の場合、 終了デリミタは対応する組の閉じ文字(つまり C<)>, C<]>, C<}>, C<< > >>) です。 @@ -4491,7 +4484,7 @@ 展開は行われません。 C<\\> の組み合わせはそのままであることに注意してください; -ヒヤドキュメントではデリミタのエスケープはできないからです。 +ヒアドキュメントではデリミタのエスケープはできないからです。 =item C<m''>, the pattern of C<s'''> @@ -4722,11 +4715,10 @@ =end original -Processing of C<\N{...}> is also done here, and compiled into an intermediate -form for the regex compiler. (This is because, as mentioned below, the regex -compilation may be done at execution time, and C<\N{...}> is a compile-time -construct.) -(TBT) +C<\N{...}> の処理もここで行われ、正規表現コンパイラのための中間形式に +コンパイルされます。 +(これは、後述するように、正規表現のコンパイルは実行時に行われ、 +C<\N{...}> はコンパイル時の構文だからです。) =begin original @@ -4938,6 +4930,8 @@ =item Optimization of regular expressions X<regexp, optimization> +(正規表現の最適化) + =begin original This step is listed for completeness only. Since it does not change