argra****@users*****
argra****@users*****
2012年 12月 9日 (日) 21:33:48 JST
Index: docs/modules/feature-1.13/feature.pod diff -u /dev/null docs/modules/feature-1.13/feature.pod:1.1 --- /dev/null Sun Dec 9 21:33:48 2012 +++ docs/modules/feature-1.13/feature.pod Sun Dec 9 21:33:48 2012 @@ -0,0 +1,283 @@ + +=encoding euc-jp + +=head1 NAME + +=begin original + +feature - Perl pragma to enable new syntactic features + +=end original + +feature - 新しい構文上の機能を有効にするプラグマ + +=head1 SYNOPSIS + + use feature qw(switch say); + given ($foo) { + when (1) { say "\$foo == 1" } + when ([2,3]) { say "\$foo == 2 || \$foo == 3" } + when (/^a[bc]d$/) { say "\$foo eq 'abd' || \$foo eq 'acd'" } + when ($_ > 100) { say "\$foo > 100" } + default { say "None of the above" } + } + + use feature ':5.10'; # loads all features available in perl 5.10 + +=head1 DESCRIPTION + +=begin original + +It is usually impossible to add new syntax to Perl without breaking +some existing programs. This pragma provides a way to minimize that +risk. New syntactic constructs can be enabled by C<use feature 'foo'>, +and will be parsed only when the appropriate feature pragma is in +scope. + +=end original + +既に存在しているプログラムを壊すことなく、Perl に新しい文法を追加することは、 +普通は不可能です。 +このプラグマは、リスクを最小化する方法を提供します。 +新しい文法構造は C<use feature 'foo'> で有効化され、適切な feature プラグマが +スコープ内にある場合にのみパースされます。 + +=head2 Lexical effect + +(レキシカルな効果) + +=begin original + +Like other pragmas (C<use strict>, for example), features have a lexical +effect. C<use feature qw(foo)> will only make the feature "foo" available +from that point to the end of the enclosing block. + +=end original + +(例えば C<use strict> のような) その他のプラグマと同様、feature は +レキシカルな効果を持ちます。 +C<use feature qw(foo)> は、この地点からブロックの終わりまでの間だけ、 +"foo" 機能を利用可能にします。 + + { + use feature 'say'; + say "say is available here"; + } + print "But not here.\n"; + +=head2 C<no feature> + +=begin original + +Features can also be turned off by using C<no feature "foo">. This too +has lexical effect. + +=end original + +機能は C<no feature "foo"> を使うことで無効にすることも出来ます。 +これもまたレキシカルな効果を持ちます。 + + use feature 'say'; + say "say is available here"; + { + no feature 'say'; + print "But not here.\n"; + } + say "Yet it is here."; + +=begin original + +C<no feature> with no features specified will turn off all features. + +=end original + +C<no feature> と、機能を指定せずに使うと、全ての機能が無効になります。 + +=head2 The 'switch' feature + +('switch' 機能) + +=begin original + +C<use feature 'switch'> tells the compiler to enable the Perl 6 +given/when construct. + +=end original + +C<use feature 'switch'> は、コンパイラに Perl 6 given/when 構文を +有効にするように伝えます。 + +=begin original + +See L<perlsyn/"Switch statements"> for details. + +=end original + +詳しくは L<perlsyn/"Switch statements"> を参照してください。 + +=head2 The 'say' feature + +('say' 機能) + +=begin original + +C<use feature 'say'> tells the compiler to enable the Perl 6 +C<say> function. + +=end original + +C<use feature 'say'> は、コンパイラに Perl 6 C<say> 関数を有効にするように +伝えます。 + +=begin original + +See L<perlfunc/say> for details. + +=end original + +詳しくは L<perlfunc/say> を参照してください。 + +=head2 the 'state' feature + +('state' 機能) + +=begin original + +C<use feature 'state'> tells the compiler to enable C<state> +variables. + +=end original + +C<use feature 'state'> は、コンパイラに C<state> 変数を有効にするように +伝えます。 + +=begin original + +See L<perlsub/"Persistent Private Variables"> for details. + +=end original + +詳しくは L<perlsub/"Persistent Private Variables"> を参照してください。 + +=head1 FEATURE BUNDLES + +(機能の束) + +=begin original + +It's possible to load a whole slew of features in one go, using +a I<feature bundle>. The name of a feature bundle is prefixed with +a colon, to distinguish it from an actual feature. At present, the +only feature bundle is C<use feature ":5.10"> which is equivalent +to C<use feature qw(switch say state)>. + +=end original + +大量の機能全体を 1 回で読み込むためには、I<機能の束> (feature bundle) が +使えます。 +機能の束の名前には、実際の機能と区別するためにコロンが前置されます。 +現在のところ、唯一の機能の束は C<use feature ":5.10"> で、 +C<use feature qw(switch say state)> と等価です。 + +=begin original + +Specifying sub-versions such as the C<0> in C<5.10.0> in feature bundles has +no effect: feature bundles are guaranteed to be the same for all sub-versions. + +=end original + +機能の束での C<5.10.0> の C<0> のような副バージョンを指定しても効果は +ありません: 機能の束は全ての副バージョンに関して同じ事が保証されています。 + +=head1 IMPLICIT LOADING + +(暗黙の読み込み) + +=begin original + +There are two ways to load the C<feature> pragma implicitly : + +=end original + +C<feature> プラグマを暗黙に読み込むには二つの方法があります: + +=over 4 + +=item * + +=begin original + +By using the C<-E> switch on the command-line instead of C<-e>. It enables +all available features in the main compilation unit (that is, the one-liner.) + +=end original + +コマンドラインで C<-e> オプションの代わりに C<-E> オプションを使います。 +これにより、main コンパイル単位(つまり、1 行野郎)で全ての利用可能な機能が +有効になります。 + +=item * + +=begin original + +By requiring explicitly a minimal Perl version number for your program, with +the C<use VERSION> construct, and when the version is higher than or equal to +5.10.0. That is, + +=end original + +つまり、以下のようにすると: + + use 5.10.0; + +=begin original + +will do an implicit + +=end original + +暗黙のうちに以下のように: + + use feature ':5.10'; + +=begin original + +and so on. Note how the trailing sub-version is automatically stripped from the +version. + +=end original + +なるということです。 +末尾の副バージョンは自動的にバージョンから取り除かれるようになったことに +注意してください。 + +=begin original + +But to avoid portability warnings (see L<perlfunc/use>), you may prefer: + +=end original + +しかし移植性の警告(L<perlfunc/use> を参照してください)を避けるために、 +以下のようにするのを好むかもしれません: + + use 5.010; + +=begin original + +with the same effect. + +=end original + +これでも同じ効果が得られます。 + +=back + +=begin meta + +Translate: SHIRAKATA Kentaro <argra****@ub32*****> +Status: completed + +=end meta + +=cut +