argra****@users*****
argra****@users*****
2008年 11月 30日 (日) 03:13:37 JST
Index: docs/perl/5.8.8/perldata.pod diff -u docs/perl/5.8.8/perldata.pod:1.6 docs/perl/5.8.8/perldata.pod:1.7 --- docs/perl/5.8.8/perldata.pod:1.6 Sat Aug 23 06:10:14 2008 +++ docs/perl/5.8.8/perldata.pod Sun Nov 30 03:13:37 2008 @@ -109,11 +109,9 @@ スカラ値の参照は配列やハッシュの一要素であるスカラを参照する場合でも、 常に名前に '$' を付けます。 -The '$' symbol works -semantically like the English word "the" in that it indicates a -single value is expected. +シンボル '$' は文法的に英単語 "the" のように働き、単一の値が +想定されていることを示しています。 X<scalar> -(TBT) $days # the simple scalar value "days" $days[28] # the 29th element of array @days @@ -130,10 +128,9 @@ =end original 配列全体(および配列やハッシュのスライス)は '@' で示します; -which works much like the word "these" or "those" does in English, -in that it indicates multiple values are expected. +これは英単語での "these" や "those" のように働き、複数の値が +想定されていることを示します。 X<array> -(TBT) @days # ($days[0], $days[1],... $days[n]) @days[3,4,5] # same as ($days[3],$days[4],$days[5]) @@ -360,14 +357,12 @@ =end original -When you use the C<use warnings> pragma or Perl's B<-w> command-line -option, you may see warnings -about useless uses of constants or functions in "void context". -Void context just means the value has been discarded, such as a -statement containing only C<"fred";> or C<getpwuid(0);>. It still -counts as scalar context for functions that care whether or not -they're being called in list context. -(TBT) +C<use warnings> プラグマや Perl の B<-w> コマンドラインオプションを使うと、 +「無効コンテキスト」での定数や関数の無意味な使用について警告が出ます。 +無効コンテキストは、C<"fred";> や C<getpwuid(0);> のみを含む文のように、 +単に値が捨てられることを意味します。 +リストコンテキストで呼び出されたかどうかを考慮する関数にとっては、 +これはやはりスカラコンテキストとして扱われます。 =begin original @@ -863,10 +858,9 @@ =end original -B<Note:> Version Strings (v-strings) have been deprecated. They will -not be available after Perl 5.8. The marginal benefits of v-strings -were greatly outweighed by the potential for Surprise and Confusion. -(TBT) +B<注意:> バージョン文字列 (v-文字列) は非推奨です。 +これは Perl 5.8 より後では利用できなくなります。 +v-文字列のわずかな利点より、潜在的な驚きと混乱の方が大きく上回ります。 =begin original @@ -881,15 +875,14 @@ =end original -A literal of the form C<v1.20.300.4000> is parsed as a string composed -of characters with the specified ordinals. This form, known as -v-strings, provides an alternative, more readable way to construct -strings, rather than use the somewhat less readable interpolation form -C<"\x{1}\x{14}\x{12c}\x{fa0}">. This is useful for representing -Unicode strings, and for comparing version "numbers" using the string -comparison operators, C<cmp>, C<gt>, C<lt> etc. If there are two or -more dots in the literal, the leading C<v> may be omitted. -(TBT) +C<v1.20.300.4000> の形のリテラルは、指定された序数を持つ文字からなる +文字列としてパースされます。 +この形はv-文字列と呼ばれ、より読みにくい文字変換形式 +C<"\x{1}\x{14}\x{12c}\x{fa0}"> よりも読みやすい文字列を構成する方法を +提供します。 +これは Unicode 文字列を表現するためや、バージョン「番号」を文字列比較 +演算子 C<cmp>, C<gt>, C<lt> などを使って比較するときに便利です。 +もしリテラルに 2 つ以上のドットがある場合、先頭の C<v> は省略できます。 print v9786; # prints UTF-8 encoded SMILEY, "\x{263a}" print v102.111.111; # prints "foo" @@ -905,12 +898,13 @@ =end original -Such literals are accepted by both C<require> and C<use> for -doing a version check. The C<$^V> special variable also contains the -running Perl interpreter's version in this form. See L<perlvar/$^V>. -Note that using the v-strings for IPv4 addresses is not portable unless -you also use the inet_aton()/inet_ntoa() routines of the Socket package. -(TBT) +このようなリテラルは C<require> と C<use> でバージョンチェックを行う場合に +受け入れられます。 +特殊変数 C<$^V> も、Perl インタプリタのバージョンをこの形式で保持します。 +L<perlvar/$^V> を参照してください。 +v-文字列を IPv4 アドレスに使うと、Socket パッケージの +inet_aton()/inet_ntoa() ルーチンも使わない限り、移植性がないことに +注意してください。 =begin original @@ -924,14 +918,14 @@ =end original -Note that since Perl 5.8.1 the single-number v-strings (like C<v65>) -are not v-strings before the C<< => >> operator (which is usually used -to separate a hash key from a hash value), instead they are interpreted -as literal strings ('v65'). They were v-strings from Perl 5.6.0 to -Perl 5.8.0, but that caused more confusion and breakage than good. -Multi-number v-strings like C<v65.66> and C<65.66.67> continue to -be v-strings always. -(TBT) +Perl 5.8.1 から、 (C<v65> のような) 単一の数値のv-文字列は C<< => >> 演算子 +(ハッシュキーとハッシュの値を分けるために普通使われます) の前では +v-文字列ではなく、リテラル文字列 ('v65') として扱われることに +注意してください。 +これは Perl 5.6.0 から Perl 5.8.0 ではv-文字列でしたが、これはよいことよりも +大きな混乱と破壊を招きました。 +C<v65.66> や C<65.66.67> のような複数の数値の v-文字列 は常にv-文字列で +あり続けます。 =head3 Special Literals X<special literal> X<__END__> X<__DATA__> X<END> X<DATA> @@ -1270,14 +1264,15 @@ =end original -This interpolation combines with the facts that the opening +この展開は、combines with the facts that the opening and closing parentheses are optional (except when necessary for precedence) and lists may end with an optional comma to mean that -multiple commas within lists are legal syntax. The list C<1,,3> is a -concatenation of two lists, C<1,> and C<3>, the first of which ends -with that optional comma. C<1,,3> is C<(1,),(3)> is C<1,3> (And -similarly for C<1,,,3> is C<(1,),(,),3> is C<1,3> and so on.) Not that -we'd advise you to use this obfuscation. +multiple commas within lists are legal syntax. +リスト C<1,,3> は 2 つのリスト C<1,> と C<3> の結合であり、 +1 つ目のリストはオプションのカンマで終わっています。 +C<1,,3> は C<(1,),(3)> で C<1,3> です (そして同様に C<1,,,3> は +C<(1,),(,),3> で C<1,3> です。以下同様。) +この暗黒面を使うよう勧めているわけではありません。 (TBT) =begin original @@ -1367,7 +1362,8 @@ It's also the source of a useful idiom for executing a function or performing an operation in list context and then counting the number of return values, by assigning to an empty list and then using that -assignment in scalar context. For example, this code: +assignment in scalar context. +例えば、以下のコードは: (TBT) $count = () = $string =~ /\d+/g; @@ -1384,14 +1380,13 @@ =end original -will place into $count the number of digit groups found in $string. -This happens because the pattern match is in list context (since it -is being assigned to the empty list), and will therefore return a list -of all matching parts of the string. The list assignment in scalar -context will translate that into the number of elements (here, the -number of times the pattern matched) and assign that to $count. +$string の中で見つかった数字のグループの数を $count に設定します。 +これは、(値が空リストに代入されているので)パターンマッチングは +リストコンテキストで行われ、従って文字列での全てのマッチした部分の +リストが返されるために起こります。 +スカラコンテキストでのリスト代入は要素数(ここでは、マッチしたパターンの +数)に変換され、それが $count に代入されます。 単に以下のようにしても: -(TBT) $count = $string =~ /\d+/g; @@ -1727,13 +1722,12 @@ =end original -If you're confused about why you use an '@' there on a hash slice -instead of a '%', think of it like this. The type of bracket (square -or curly) governs whether it's an array or a hash being looked at. -On the other hand, the leading symbol ('$' or '@') on the array or -hash indicates whether you are getting back a singular value (a -scalar) or a plural one (a list). -(TBT) +もし、なぜここでハッシュスライスに '%' ではなく '@' を使うのかについて +混乱するなら、次のように考えてみてください。 +かっこの種類(大かっこか中かっこか)は、見ているものが配列かハッシュかを +つかさどっています。 +一方、配列やハッシュの先頭の記号('$' か '@') は、返ってくるものが単一の +値(スカラ)か、複数の値(リスト)かを示しています。 =head2 Typeglobs and Filehandles X<typeglob> X<filehandle> X<*>