=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, and will be parsed only when the appropriate feature pragma is in scope. =end original 既に存在しているプログラムを壊すことなく、Perl に新しい文法を追加することは、 普通は不可能です。 このプラグマは、リスクを最小化する方法を提供します。 新しい文法構造は C で有効化され、適切な feature プラグマが スコープ内にある場合にのみパースされます。 =head2 Lexical effect (レキシカルな効果) =begin original Like other pragmas (C, for example), features have a lexical effect. C will only make the feature "foo" available from that point to the end of the enclosing block. =end original (例えば C のような) その他のプラグマと同様、feature は レキシカルな効果を持ちます。 C は、この地点からブロックの終わりまでの間だけ、 "foo" 機能を利用可能にします。 { use feature 'say'; say "say is available here"; } print "But not here.\n"; =head2 C =begin original Features can also be turned off by using C. This too has lexical effect. =end original 機能は C を使うことで無効にすることも出来ます。 これもまたレキシカルな効果を持ちます。 use feature 'say'; say "say is available here"; { no feature 'say'; print "But not here.\n"; } say "Yet it is here."; =begin original C with no features specified will turn off all features. =end original C と、機能を指定せずに使うと、全ての機能が無効になります。 =head2 The 'switch' feature ('switch' 機能) =begin original C tells the compiler to enable the Perl 6 given/when construct. =end original C は、コンパイラに Perl 6 given/when 構文を 有効にするように伝えます。 =begin original See L for details. =end original 詳しくは L を参照してください。 =head2 The 'say' feature ('say' 機能) =begin original C tells the compiler to enable the Perl 6 C function. =end original C は、コンパイラに Perl 6 C 関数を有効にするように 伝えます。 =begin original See L for details. =end original 詳しくは L を参照してください。 =head2 the 'state' feature ('state' 機能) =begin original C tells the compiler to enable C variables. =end original C は、コンパイラに C 変数を有効にするように 伝えます。 =begin original See L for details. =end original 詳しくは L を参照してください。 =head1 FEATURE BUNDLES (機能の束) =begin original It's possible to load a whole slew of features in one go, using a I. 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 which is equivalent to C. =end original 大量の機能全体を 1 回で読み込むためには、I<機能の束> (feature bundle) が 使えます。 機能の束の名前には、実際の機能と区別するためにコロンが前置されます。 現在のところ、唯一の機能の束は C で、 C と等価です。 =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 pragma implicitly : =end original C プラグマを暗黙に読み込むには二つの方法があります: =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 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), you may prefer: =end original しかし移植性の警告(L を参照してください)を避けるために、 以下のようにするのを好むかもしれません: use 5.010; =begin original with the same effect. =end original これでも同じ効果が得られます。 =back =begin meta Translate: SHIRAKATA Kentaro Status: completed =end meta =cut