argra****@users*****
argra****@users*****
2013年 9月 26日 (木) 00:27:34 JST
Index: docs/perl/5.18.1/perlsub.pod diff -u docs/perl/5.18.1/perlsub.pod:1.1 docs/perl/5.18.1/perlsub.pod:1.2 --- docs/perl/5.18.1/perlsub.pod:1.1 Tue Sep 17 23:17:40 2013 +++ docs/perl/5.18.1/perlsub.pod Thu Sep 26 00:27:33 2013 @@ -543,9 +543,8 @@ =end original -The behaviour of C<__SUB__> within a regex code block (such as C</(?{...})/>) -is subject to change. -(TBT) +(C</(?{...})/> のような) 正規表現コードブロック中の C<__SUB__> の振る舞いは +変更されるかもしれません。 =begin original @@ -1093,14 +1092,13 @@ =end original -The C<state> keyword creates a lexical variable (following the same scoping -rules as C<my>) that persists from one subroutine call to the next. If a -state variable resides inside an anonymous subroutine, then each copy of -the subroutine has its own copy of the state variable. However, the value -of the state variable will still persist between calls to the same copy of -the anonymous subroutine. (Don't forget that C<sub { ... }> creates a new -subroutine each time it is executed.) -(TBT) +The C<state> キーワードは、あるサブルーチン呼び出しから次の呼び出しまで永続する +(C<my> と同じスコープ規則に従う)レキシカル変数を作成します。 +state 変数が無名サブルーチンの中にある場合は、サブルーチンのそれぞれのコピーは +独自の state 変数を持ちます。 +しかし、state 変数の値は同じ無名サブルーチンの呼び出しの間では永続します。 +(C<sub { ... }> は、実行されるごとに新しいサブルーチンを作ることを +忘れないでください。) =begin original @@ -1121,8 +1119,7 @@ =end original -And this example uses anonymous subroutines to create separate counters: -(TBT) +そしてこの例は、別々のカウンタを作るために無名サブルーチンを使います: use feature 'state'; sub create_counter { @@ -1685,6 +1682,8 @@ =head3 Localized deletion of elements of composite types X<delete> X<local, composite type element> X<local, array element> X<local, hash element> +(複合方の要素のローカル化された削除) + =begin original You can use the C<delete local $array[$idx]> and C<delete local $hash{key}> @@ -1880,6 +1879,8 @@ =head2 Lexical Subroutines X<my sub> X<state sub> X<our sub> X<subroutine, lexical> +(レキシカルサブルーチン) + =begin original B<WARNING>: Lexical subroutines are still experimental. The feature may be @@ -1887,9 +1888,9 @@ =end original -B<WARNING>: Lexical subroutines are still experimental. The feature may be -modified or removed in future versions of Perl. -(TBT) +B<警告>: レキシカルサブルーチンはまだ実験的です。 +この機能は将来のバージョンの Perl で変更されたり削除されたりするかも +しれません。 =begin original @@ -1899,10 +1900,9 @@ =end original -Lexical subroutines are only available under the C<use feature -'lexical_subs'> pragma, which produces a warning unless the -"experimental::lexical_subs" warnings category is disabled. -(TBT) +レキシカルサブルーチンは C<use feature 'lexical_subs'> プラグマの下でのみ +利用可能で、"experimental::lexical_subs" 警告カテゴリを無効にしない限り +警告が発生します。 =begin original @@ -1912,10 +1912,10 @@ =end original -Beginning with Perl 5.18, you can declare a private subroutine with C<my> -or C<state>. As with state variables, the C<state> keyword is only -available under C<use feature 'state'> or C<use 5.010> or higher. -(TBT) +Perl 5.18 から、C<my> や C<state> を使ってプライベートなサブルーチンを +宣言できます。 +state 変数の場合、C<state> キーワードは C<use feature 'state'> または +C<use 5.010> またはそれ以上の下でのみ利用可能です。 =begin original @@ -1924,9 +1924,8 @@ =end original -These subroutines are only visible within the block in which they are -declared, and only after that declaration: -(TBT) +これらのサブルーチンは、宣言されたブロックの内側で、宣言された後でのみ +見えます: no warnings "experimental::lexical_subs"; use feature 'lexical_subs'; @@ -1949,10 +1948,10 @@ =end original -To use a lexical subroutine from inside the subroutine itself, you must -predeclare it. The C<sub foo {...}> subroutine definition syntax respects -any previous C<my sub;> or C<state sub;> declaration. -(TBT) +レキシカルサブルーチンを自分自身の内側から使うには、 +先行宣言しなければなりません。 +C<sub foo {...}> サブルーチン宣言文法は、先行する C<my sub;> または +C<state sub;> 宣言を考慮します。 my sub baz; # predeclaration sub baz { # define the "my" sub @@ -1970,11 +1969,10 @@ =end original -What is the difference between "state" subs and "my" subs? Each time that -execution enters a block when "my" subs are declared, a new copy of each -sub is created. "State" subroutines persist from one execution of the -containing block to the next. -(TBT) +"state" サブルーチンと "my" サブルーチンの違いはなんでしょう? +"my" サブルーチンが宣言されていると、ブロックが実行される毎に新しい +サブルーチンが作成されます。 +"state" サブルーチンは、一度目の内部のブロックの実行から次まで永続します。 =begin original @@ -1983,9 +1981,8 @@ =end original -So, in general, "state" subroutines are faster. But "my" subs are -necessary if you want to create closures: -(TBT) +したがって、一般的に、"state" サブルーチンの方が速いです。 +しかし、クロージャを作成したいときには "my" サブルーチンが必要です: no warnings "experimental::lexical_subs"; use feature 'lexical_subs'; @@ -2006,13 +2003,15 @@ =end original -In this example, a new C<$x> is created when C<whatever> is called, and -also a new C<inner>, which can see the new C<$x>. A "state" sub will only -see the C<$x> from the first call to C<whatever>. -(TBT) +この例で、C<whatever> が呼び出されたときに新しい C<$x> が作成され、さらに +新しい C<$x> が見える新しい C<inner> が作成されます。 +"state" サブルーチンは最初の C<whatever> の呼び出しからの C<$x> だけが +見えます。 =head3 C<our> subroutines +(C<our> サブルーチン) + =begin original Like C<our $variable>, C<our sub> creates a lexical alias to the package @@ -2020,9 +2019,8 @@ =end original -Like C<our $variable>, C<our sub> creates a lexical alias to the package -subroutine of the same name. -(TBT) +C<our $variable> と同様、C<our sub> は同じ名前のパッケージサブルーチンへの +レキシカルな別名を作成します。 =begin original @@ -2031,9 +2029,8 @@ =end original -The two main uses for this are to switch back to using the package sub -inside an inner scope: -(TBT) +これの主な二つの使用法は、内側のスコープの内側のパッケージサブルーチンを +使うために切り替えのためです: no warnings "experimental::lexical_subs"; use feature 'lexical_subs'; @@ -2055,8 +2052,7 @@ =end original -and to make a subroutine visible to other packages in the same scope: -(TBT) +もう一つは同じスコープのほかのパッケージから見えるサブルーチンを作ることです: package MySneakyModule; @@ -3633,7 +3629,7 @@ Translate: KIMURA Koichi (5.005_03) Update: SHIRAKATA Kentaro <argra****@ub32*****> (5.6.1-) -Status: in progress +Status: completed =end meta