Kentaro Shirakata
argra****@users*****
2007年 8月 25日 (土) 00:45:18 JST
Index: docs/perl/5.8.8/perlop.pod diff -u docs/perl/5.8.8/perlop.pod:1.3 docs/perl/5.8.8/perlop.pod:1.4 --- docs/perl/5.8.8/perlop.pod:1.3 Fri Aug 24 01:43:16 2007 +++ docs/perl/5.8.8/perlop.pod Sat Aug 25 00:45:18 2007 @@ -771,13 +771,12 @@ =end original -Note that both "<<" and ">>" in Perl are implemented directly using -"<<" and ">>" in C. If C<use integer> (see L<Integer Arithmetic>) is -in force then signed C integers are used, else unsigned C integers are -used. Either way, the implementation isn't going to generate results -larger than the size of the integer type Perl was built with (32 bits -or 64 bits). -(TBT) +Perl での "<<" と ">>" は C での "<<" と ">>" を直接利用して +実装されていることに注意してください。 +C<use integer> (L<Integer Arithmetic> を参照してください)が有効な場合、 +C の符号付き整数が使われ、そうでない場合は C の符号なし整数が使われます。 +どちらの場合も、この実装は Perl がビルドされた整数型のサイズ(32 ビットか +64 ビット)よりも大きい結果を生成することはありません。 =begin original @@ -2039,7 +2038,7 @@ qr{} パターン 可 * s{}{} 置換 可 * tr{}{} 変換 不可 (但し以下を参照のこと) - <<EOF ヒヤドキュメント 可 * + <<EOF ヒアドキュメント 可 * * '' がデリミタでない場合のみ @@ -3594,19 +3593,19 @@ =end original -A line-oriented form of quoting is based on the shell "here-document" -syntax. Following a C<< << >> you specify a string to terminate -the quoted material, and all lines following the current line down to -the terminating string are the value of the item. The terminating -string may be either an identifier (a word), or some quoted text. If -quoted, the type of quotes you use determines the treatment of the -text, just as in regular quoting. An unquoted identifier works like -double quotes. There must be no space between the C<< << >> and -the identifier, unless the identifier is quoted. (If you put a space it -will be treated as a null identifier, which is valid, and matches the first -empty line.) The terminating string must appear by itself (unquoted and -with no surrounding whitespace) on the terminating line. -(TBT) +クォートの行指向形式は、シェルの「ヒアドキュメント」構文を基にしています。 +C<< << >> に引き続いて、クォートされるテキストを終了させる文字列を指定でき、 +現在の行の次の行から終端文字列までの全ての行がその項目の値となります。 +終端文字列には、識別子(単語) かクォートされたテキストが使えます。 +クォートされている場合には、そのクォートの種類によって、実際に +クォートされるテキストの扱いが、通常のクォートと同様にして決められます。 +クォートされていない識別子は、ダブルクォートのように扱われます。 +識別子がクォートされていない場合は、C<< << >> と識別子の間に +空白を入れてはいけません。 +(もし空白を入れると、空識別子として扱われます; これは有効で、 +最初の空行にマッチするようになります。) +終端文字列は終端行に単体で(クォートされず、前後にも空白なしで) +現れなければなりません。 print <<EOF; The price is $Price. @@ -3642,10 +3641,9 @@ =end original -Just don't forget that you have to put a semicolon on the end -to finish the statement, as Perl doesn't know you're not going to -try to do this: -(TBT) +以下のようなことをしたいのではないということが Perl にはわからないので、 +文を終わらせるためには末尾にセミコロンをつけなければならないことを +忘れないで下さい: print <<ABC 179231 @@ -3660,7 +3658,7 @@ =end original -ヒヤドキュメントをソースのほかの部分からインデントしたい場合、 +ヒアドキュメントをソースのほかの部分からインデントしたい場合、 各行の先頭の空白は手動で取り除く必要があります: ($quote = <<'FINIS') =~ s/^\s+//gm; @@ -3676,7 +3674,7 @@ =end original -C<s///eg> のようなデリミタ構造の中でヒヤドキュメントを使う場合、 +C<s///eg> のようなデリミタ構造の中でヒアドキュメントを使う場合、 クォートされたものは最後のデリミタに引き続くものとして来なければなりません。 従って、以下のようではなく: @@ -3720,11 +3718,10 @@ =end original -Additionally, the quoting rules for the identifier are not related to -Perl's quoting rules -- C<q()>, C<qq()>, and the like are not supported -in place of C<''> and C<"">, and the only interpolation is for backslashing -the quoting character: -(TBT) +さらに、識別子に対するクォートルールは Perl のクォートルールとは +関係がありません -- C<q()>, C<qq()> および同種のものは C<''> や C<""> の +代わりのなるものには対応しておらず、文字をクォートするための +バックスラッシュだけが展開されます: print << "abc\"def"; testing...