argra****@users*****
argra****@users*****
2014年 12月 23日 (火) 01:28:15 JST
Index: docs/perl/5.20.1/perlref.pod diff -u docs/perl/5.20.1/perlref.pod:1.1 docs/perl/5.20.1/perlref.pod:1.2 --- docs/perl/5.20.1/perlref.pod:1.1 Sat Oct 18 20:35:16 2014 +++ docs/perl/5.20.1/perlref.pod Tue Dec 23 01:28:14 2014 @@ -24,7 +24,7 @@ =end original -本ドキュメントはリファレンスに関するものです。 +これはリファレンスに関するあらゆる側面に関する完全な文書です。 チュートリアルに関しては L<perlreftut> を参照してください。 =head1 DESCRIPTION @@ -42,7 +42,7 @@ =end original -リリース 5 以前の Perl ではすべてのリファレンスはシンボリックでなければ +リリース 5 より前の Perl ではすべてのリファレンスはシンボリックでなければ ならなかったために、複雑なデータ構造を表現することが困難でした-- そしてシンボルテーブルのエントリーではなく変数を参照したいと望んだときも 困難であったのです。 @@ -93,10 +93,10 @@ UNIX ファイルシステム上でのシンボリックリンクが単にファイルの名前を 持っているだけであるのと同様に、シンボリックリファレンスは変数の 名前を保持します。 -C<*glob> の記法は、シンボリックリファレンスの一種です -(シンボリックリファレンスは時折“ソフトリファレンス”と +C<*glob> の記法は、シンボリックリファレンスの一種です。 +(シンボリックリファレンスは時折 "ソフトリファレンス" と 呼ばれますが、そういう呼びかたをしないでください。 -リファレンスは同義語を使わないでいてさえ混乱を招くのですから)。 +リファレンスは同義語を使わないでいてさえ混乱を招くのですから。) X<reference, symbolic> X<reference, soft> X<symbolic reference> X<soft reference> @@ -114,7 +114,7 @@ 対照的に、 ハードリファレンスはUNIXのファイルシステム上のハードリンクに 似ています: ハードリンクはそれがなんの名前であるのかを気にせずに 基礎をなすオブジェクトにアクセスするために使われます。 -以下の節にあるように“リファレンス”と言う言葉を形容なしに使った +以下の節にあるように "リファレンス" と言う言葉を形容なしに使った 場合、通常はハードリファレンスのことを指します。 X<reference, hard> X<hard reference> @@ -365,9 +365,8 @@ =end original -先頭にある C<+{> や C<{;> が、その式が実際には -ハッシュのリファレンスなのかブロックなのかの -曖昧さを除去するためにあります。 +先頭にある C<+{> や C<{;> が、その式が実際にはハッシュのリファレンスなのか +ブロックなのかの曖昧さを除去するためにあります。 =item 4. X<subroutine, anonymous> X<subroutine, reference> X<reference, subroutine> @@ -431,8 +430,7 @@ わかりやすく言えば、あなたがサブルーチンを呼び出すときと同じように、 サブルーチンを定義するときに引数を渡すという奇妙なやり方ということです。 -あなたはこれでオブジェクト指向的性質を実現することも -できます。 +あなたはこれでオブジェクト指向的性質を実現することもできます。 が、Perl はすでにこれとは異なる仕組みを提供しています -- L<perlobj> を参照してください。 @@ -480,8 +478,8 @@ =end original -ここで特に、無名サブルーチンの実行時には“my $x”がスコープの外にあるにも -B<かかわらず>、$x が newprint() に渡された値を参照しつづけていることに +ここで特に、無名サブルーチンの実行時には "my $x" がスコープの外にあるにも +I<かかわらず>、$x が newprint() に渡された値を参照しつづけていることに 注意してください。 これがクロージャがクロージャたる由縁です。 @@ -604,8 +602,8 @@ これらのほとんどは自己説明的ですが、C<*foo{IO}> は特に注目するに値します。 これはファイルハンドル(L<perlfunc/open>)、ソケット(L<perlfunc/socket> と -L<perlfunc/socketpair>)、ディレクトリハンドル(L<perlfunc/opendir>) -として使われる IO ハンドルを返します。 +L<perlfunc/socketpair>)、ディレクトリハンドル(L<perlfunc/opendir>)として +使われる IO ハンドルを返します。 過去のバージョンの Perl に対する互換性のために、 C<*foo{FILEHANDLE}> は C<*foo{IO}> の同義語ですが、5.8.0 からは非推奨です。 非推奨警告が有効になっていれば、使用すると警告が出ます。 @@ -660,11 +658,12 @@ C<*foo{IO}> は、L<perldata/"Typeglobs and Filehandles"> にある ファイルハンドルをサブルーチンに渡したり、あるいは逆に -サブルーチンから返すために、あるいは大きなデータ構造を格納する -ために用いられる C<*HANDLE> 機構の代替です。 -その不利な点は新しいハンドルをあなたのために作り出すことはしないと -いうことです。 -有利な点は、型グロブの代入を使うよりも気をつかう必要があまりないということです。 +サブルーチンから返すために、あるいは大きなデータ構造を格納するために +用いられる C<*HANDLE> 機構の代替です。 +その不利な点は新しいハンドルをあなたのために作り出すことはしないという +ことです。 +有利な点は、型グロブの代入を使うよりも気をつかう必要が +あまりないということです。 (しかし、これはまだファイルハンドルとディレクトリハンドルを融合します。) しかし、もし以下の例で行っているように、値を型グロブではなくスカラに 代入すると、起きることに対するリスクはありません。 @@ -929,9 +928,8 @@ =end original リファレンスが、オブジェクトに対するものである場合には、参照されるものを -アクセスするためのメソッドがあるはずで、オブジェクトのメソッドを -定義するクラスパッケージ内でなければ、そのメソッドを使うように -した方が良いでしょう。 +アクセスするためのメソッドがあるはずで、オブジェクトのメソッドを定義する +クラスパッケージ内でなければ、そのメソッドを使うようにした方が良いでしょう。 言い換えると、良識をもって、特別正当な理由がない限り、 オブジェクトのカプセル化を反古にしてはいけないということです。 Perl は、カプセル化を強要したりはしません。 @@ -1307,7 +1305,7 @@ =end original -とすると push が予約語であるにも関らず常に“pop on over”となります。 +とすると push が予約語であるにも関らず常に "pop on over" となります。 囲まれるダブルクォートがなくても同じように動作するように一般化されるので print ${push} . "over"; @@ -1675,6 +1673,8 @@ =head1 Postfix Dereference Syntax +(後置デリファレンス文法) + =begin original Beginning in v5.20.0, a postfix syntax for using references is @@ -1683,10 +1683,9 @@ =end original -Beginning in v5.20.0, a postfix syntax for using references is -available. It behaves as described in L</Using References>, but instead -of a prefixed sigil, a postfixed sigil-and-star is used. -(TBT) +v5.20.0 から、リファレンスを使うための後置文法が利用可能になりました。 +これは L</Using References> で記述されているように振る舞いますが、印を +前置するのではなく、後置印とアスタリスクを使います。 =begin original @@ -1694,8 +1693,7 @@ =end original -For example: -(TBT) +例えば: $r = \@a; @b = $r->@*; # equivalent to @$r or @{ $r } @@ -1711,10 +1709,9 @@ =end original -This syntax must be enabled with C<use feature 'postderef'>. It is -experimental, and will warn by default unless C<no warnings -'experimental::postderef'> is in effect. -(TBT) +この文法は C<use feature 'postderef'> で有効にされなければなりません。 +これは実験的で、C<no warnings 'experimental::postderef'> が有効でない限り +デフォルトで警告されます。 =begin original @@ -1725,11 +1722,10 @@ =end original -Postfix dereference should work in all circumstances where block -(circumfix) dereference worked, and should be entirely equivalent. This -syntax allows dereferencing to be written and read entirely -left-to-right. The following equivalencies are defined: -(TBT) +後置デリファレンスは、ブロック(両面)デリファレンスが動作する場所ならどこでも +どうさするはずです。 +この文法により、完全に左から右に読み書きできるようにします。 +以下の等価物が定義されています。 $sref->$*; # same as ${ $sref } $aref->@*; # same as @{ $aref } @@ -1745,9 +1741,8 @@ =end original -Note especially that C<< $cref->&* >> is I<not> equivalent to C<< -$cref->() >>, and can serve different purposes. -(TBT) +特に、C<< $cref->&* >> は C<< $cref->() >> と等価 I<ではない> ことに +注意してください; 異なった目的を提供します。 =begin original @@ -1755,8 +1750,7 @@ =end original -Glob elements can be extracted through the postfix dereferencing feature: -(TBT) +グロブ要素は後置デリファレンス機能を通して展開できます: $gref->*{SCALAR}; # same as *{ $gref }{SCALAR} @@ -1768,13 +1762,14 @@ =end original -Postfix array and scalar dereferencing I<can> be used in interpolating -strings (double quotes or the C<qq> operator), but only if the -additional C<postderef_qq> feature is enabled. -(TBT) +配列とスカラの後置デリファレンスを文字列展開(ダブルクォートや C<qq> 演算子)の +中で使うことは I<可能> ですが、追加の C<postderef_qq> 機能が有効になっている +場合のみです。 =head2 Postfix Reference Slicing +(後置リファレンススライス) + =begin original Value slices of arrays and hashes may also be taken with postfix @@ -1782,9 +1777,8 @@ =end original -Value slices of arrays and hashes may also be taken with postfix -dereferencing notation, with the following equivalencies: -(TBT) +配列やハッシュの値スライスも後置デリファレンス記法をとることができ、 +以下のような等価物があります: $aref->@[ ... ]; # same as @$aref[ ... ] $href->@{ ... }; # same as @$href{ ... } @@ -1797,10 +1791,9 @@ =end original -Postfix key/value pair slicing, added in 5.20.0 and documented in +5.20.0 で追加され、 L<the KeyE<sol>Value Hash Slices section of perldata|perldata/"Key/Value Hash -Slices">, also behaves as expected: -(TBT) +Slices"> に記述されている後置キー/値の組のスライスも想定通りに振る舞います: $aref->%[ ... ]; # same as %$aref[ ... ] $href->%{ ... }; # same as %$href{ ... } @@ -1813,10 +1806,9 @@ =end original -As with postfix array, postfix value slice dereferencing I<can> be used -in interpolating strings (double quotes or the C<qq> operator), but only -if the additional C<postderef_qq> L<feature> is enabled. -(TBT) +後置配列と同様、後置値スライスデリファレンスも文字列展開(ダブルクォートや +C<qq> 演算子)の中で使うことは I<可能> ですが、追加の C<postderef_qq> 機能が +有効になっている場合のみです。 =head1 SEE ALSO @@ -1848,7 +1840,7 @@ Translate: KIMURA Koichi (5.005) Update: SHIRAKATA Kentaro <argra****@ub32*****> (5.8.8-) -Status: in progress +Status: completed =end meta