argra****@users*****
argra****@users*****
2012年 8月 5日 (日) 23:18:51 JST
Index: docs/perl/5.14.1/perllol.pod diff -u docs/perl/5.14.1/perllol.pod:1.1 docs/perl/5.14.1/perllol.pod:1.2 --- docs/perl/5.14.1/perllol.pod:1.1 Sun Jun 24 03:28:31 2012 +++ docs/perl/5.14.1/perllol.pod Sun Aug 5 23:18:50 2012 @@ -220,7 +220,7 @@ =end original -配列への参照のコンストラクターである C<[ ]> を使うことが重要です。 +配列への参照のコンストラクタである C<[ ]> を使うことが重要です。 次のように書いてしまうのはとてもまずいやりかたです: $AoA[$i] = @tmp; # WRONG! @@ -233,10 +233,9 @@ =end original -The reason that doesn't do what you want is because assigning a -named array like that to a scalar is taking an array in scalar -context, which means just counts the number of elements in @tmp. -(TBT) +あなたが望んでいることをしない理由は、スカラに対するような名前付き配列の +代入は、配列をスカラコンテキストとして扱い、これは単に @tmp の要素の数を +数えることになるからです。 =begin original @@ -410,10 +409,9 @@ なぜでしょうか? それは以前は push() の引数は参照ではなく、実際の配列である必要が あったからです。 -That's no longer true. In fact, -the line marked "implicit deref" above works just fine--in this -instance--to do what the one that says explicit deref did. -(TBT) +これはもはや正しくはありません。 +実際、上述の「暗黙的デリファレンス」と書かれた行は -- この場合は -- +正しく動作します; デリファレンスが行われます。 =begin original @@ -425,12 +423,11 @@ =end original -The reason I said "in this instance" is because that I<only> works -because C<$AoA[0]> already held an array reference. If you try that on an -undefined variable, you'll take an exception. That's because the implicit -derefererence will never autovivify an undefined variable the way C<@{ }> -always will: -(TBT) +「この場合は」と言った理由は、C<$AoA[0]> が既に配列リファレンスを +保持している場合 I<にのみ> 動作するからです。 +未定義値に対して行おうとすると、例外が発生します。 +これは、暗黙的デリファレンスは、C<@{ }> が常に行うような未定義値の +自動有効化を行わないからです: my $aref = undef; push $aref, qw(some more values); # WRONG! @@ -446,12 +443,11 @@ =end original -If you want to take advantage of this new implicit dereferencing behavior, -go right ahead: it makes code easier on the eye and wrist. Just understand -that older releases will choke on it during compilation. Whenever you make -use of something that works only in some given release of Perl and later, -but not earlier, you should place a prominent -(TBT) +この新しい暗黙的デリファレンスの振る舞いの利点を使いたいなら、正しく +前に進んでください: これにより目と手に優しいコードになります。 +単に古いリリースではコンパイル中にエラーが出ることを理解してください。 +特定のリリース以降の Perl 以降でのみ動作し、それより前では動作しないような +ものを使う時はいつでも、以下のように目立つように: use v5.14; # needed for implicit deref of array refs by array ops @@ -462,9 +458,9 @@ =end original -directive at the top of the file that needs it. That way when somebody -tries to run the new code under an old perl, rather than getting an error like -(TBT) +ファイルの先頭にこの指示子を書くべきです。 +これにより、誰かが新しいコードを古い perl で実行しようとしたときに、 +次のようなエラーではなく: Type of arg 1 to push must be array (not array element) at /tmp/a line 8, near ""betty";" Execution of /tmp/a aborted due to compilation errors. @@ -475,8 +471,7 @@ =end original -they'll be politely informed that -(TBT) +次のように親切な情報が出力されます: Perl v5.14.0 required--this is only v5.12.3, stopped at /tmp/a line 1. BEGIN failed--compilation aborted at /tmp/a line 1. @@ -606,11 +601,12 @@ =end original -When you get tired of writing a custom print for your data structures, -you might look at the standard L<Dumpvalue> or L<Data::Dumper> modules. -The former is what the Perl debugger uses, while the latter generates -parsable Perl code. For example: -(TBT) +あなたのデータ構造のためのカスタム print を書くのに疲れたなら、 +標準の L<Dumpvalue> モジュールや L<Data::Dumper> モジュールを +見るとよいでしょう。 +前者は Perl デバッガが使っていて、後者は Perl コードとしてパース可能なものを +出力します。 +例えば: use v5.14; # using the + prototype, new to v5.14 @@ -639,8 +635,7 @@ =end original -will print out: -(TBT) +これは以下のものを出力します: 0 0..3 "fred" "barney" "wilma" "betty" 1 0..2 "george" "jane" "elroy" @@ -653,9 +648,8 @@ =end original -Whereas if you comment out the two lines I said you might wish to, -then it shows it to you this way instead: -(TBT) +一方、そうしたいかもしれないと書いた二つの行をコメントアウトすると、 +代わりに以下のようなものが出力されます: 0 ARRAY(0x8031d0) 0 "fred" @@ -721,8 +715,7 @@ =end original -or spaced out a bit: -(TBT) +または少し空白を入れると: @part = @{ $AoA[4] } [ 7..12 ]; @@ -817,20 +810,13 @@ Tom Christiansen <F<tchri****@perl*****>> -=begin original - -Last update: Tue Apr 26 18:30:55 MDT 2011 - -=end original - Last update: Tue Apr 26 18:30:55 MDT 2011 -(TBT) =begin meta Translate: KIMURA Koichi (5.005_03) Update: SHIRAKATA Kentaro <argra****@ub32*****> (5.6.1-) -Status: in progress +Status: completed =end meta