=encoding euc-jp =head1 NAME =begin original perlvar - Perl predefined variables =end original perlvar - Perl で定義済みの変数 =head1 DESCRIPTION =head2 The Syntax of Variable Names (変数名の文法) =begin original Variable names in Perl can have several formats. Usually, they must begin with a letter or underscore, in which case they can be arbitrarily long (up to an internal limit of 251 characters) and may contain letters, digits, underscores, or the special sequence C<::> or C<'>. In this case, the part before the last C<::> or C<'> is taken to be a I; see L. =end original Perl の変数名は様々な形があります。 通常、変数名は英文字か下線で始まらなければならず、 任意の長さ(内部制限の 251 文字まで)を取ることができ、 英文字、数字、下線、特別な文字列である C<::> と C<'> を含むことができます。 この場合、最後の C<::> または C<'> の前は I<パッケージ限定子> として 扱われます; L を参照して下さい。 =begin original Perl variable names may also be a sequence of digits or a single punctuation or control character. These names are all reserved for special uses by Perl; for example, the all-digits names are used to hold data captured by backreferences after a regular expression match. Perl has a special syntax for the single-control-character names: It understands C<^X> (caret C) to mean the control-C character. For example, the notation C<$^W> (dollar-sign caret C) is the scalar variable whose name is the single character control-C. This is better than typing a literal control-C into your program. =end original Perl の変数は、数字の列または一文字の句読点かコントロール文字の 場合もあります。 これらの名前は全て Perl によって特別な用途のために予約されています; 例えば、全て数字の名前は正規表現マッチの後の後方参照のデータを 保持するために用いられます。 Perl には一文字のコントロール文字の名前のための特別な文法があります: C<^X>(キャレット C)は control-C キャラクタを意味します。 例えば、C<$^W>(ドル記号 キャレット C)は control-C 一文字の 名前をもつスカラ変数です。 これはプログラム中にリテラルな control-C をタイプするより 良いです。 =begin original Since Perl 5.6, Perl variable names may be alphanumeric strings that begin with control characters (or better yet, a caret). These variables must be written in the form C<${^Foo}>; the braces are not optional. C<${^Foo}> denotes the scalar variable whose name is a control-C followed by two C's. These variables are reserved for future special uses by Perl, except for the ones that begin with C<^_> (control-underscore or caret-underscore). No control-character name that begins with C<^_> will acquire a special meaning in any future version of Perl; such names may therefore be used safely in programs. C<$^_> itself, however, I reserved. =end original Perl 5.6 から、制御文字(もっと言えばキャレット)で始まる、英数字からなる 文字列の変数名も使えます。 これらの変数は C<${^Foo}> の形で書かれなければなりません; 括弧は必須です。 C<${^Foo}> はコントロール-C の後に二つ C が続く名前を持つ スカラ変数です。 これらの変数は Perl によって特別な用途のために予約されていますが、 C<^_> (コントロール-下線またはキャレット-下線)で始まるものは例外です。 C<^_> で始まるコントロール文字名は Perl の将来のバージョンで 特別な意味を持つことはありません; 従ってこれらの名前はプログラム中で安全に 使用できます。 但し、C<$^_> そのものは I<予約されます>。 =begin original Perl identifiers that begin with digits, control characters, or punctuation characters are exempt from the effects of the C declaration and are always forced to be in package C
; they are also exempt from C errors. A few other names are also exempt in these ways: =end original 数字、コントロール文字、句読点で始まる Perl の識別子は C 宣言の効果から逃れて、常に C
パッケージにあるものとして 扱われます。さらに以下のものも逃れます: ENV STDIN INC STDOUT ARGV STDERR ARGVOUT SIG =begin original In particular, the special C<${^_XYZ}> variables are always taken to be in package C
, regardless of any C declarations presently in scope. =end original 特に、新しい特別な C<${^_XYZ}> 変数はスコープ内の C 宣言に関わらず 常に C
パッケージとして扱われます。 =head1 SPECIAL VARIABLES (特殊変数) =begin original The following names have special meaning to Perl. Most punctuation names have reasonable mnemonics, or analogs in the shells. Nevertheless, if you wish to use long variable names, you need only say: =end original 以下の名前は Perl では特別な意味を持ちます。 記号的な名前の多くは記憶法があるか、シェルでの類推が可能です。 それでも長い名前を使用したい場合には use English; =begin original at the top of your program. This aliases all the short names to the long names in the current package. Some even have medium names, generally borrowed from B. To avoid a performance hit, if you don't need the C<$PREMATCH>, C<$MATCH>, or C<$POSTMATCH> it's best to use the C module without them: =end original とプログラムの最初に書いてください。 これは、すべての短い名前の別名として、 カレントパッケージで長い名前を付けるものです。 B から持ってきた中間的な名前を持っているものもあります。 パフォーマンスの影響を避けるために、もし C<$PREMATCH>, C<$MATCH>, C<$POSTMATCH> が必要ないなら、これらなしで C モジュールを使うのが 最善です: use English '-no_match_vars'; =begin original Before you continue, note the sort order for variables. In general, we first list the variables in case-insensitive, almost-lexigraphical order (ignoring the C<{> or C<^> preceding words, as in C<${^UNICODE}> or C<$^T>), although C<$_> and C<@_> move up to the top of the pile. For variables with the same identifier, we list it in order of scalar, array, hash, and bareword. =end original 先に進む前に、変数のソート順に注意してください。 一般的に、変数を大文字小文字を無視して、ほとんど辞書順に並んでいます (C<${^UNICODE}> や C<$^T> 先頭についている C<{> や C<^> は無視します)が、 C<$_> と C<@_> は先頭に来ます。 同じ識別子を持つ変数については、スカラ、配列、ハッシュ、裸の単語の順に 並べています。 =head2 General Variables (一般変数) =over 8 =item $ARG =item $_ X<$_> X<$ARG> =begin original The default input and pattern-searching space. The following pairs are equivalent: =end original デフォルトの入力とパターン検索のスペース。 以下の 2つは同値です: =begin original while (<>) {...} # equivalent only in while! while (defined($_ = <>)) {...} =end original while (<>) {...} # while の中でのみ等価! while (defined($_ = <>)) {...} /^Subject:/ $_ =~ /^Subject:/ tr/a-z/A-Z/ $_ =~ tr/a-z/A-Z/ chomp chomp($_) =begin original Here are the places where Perl will assume C<$_> even if you don't use it: =end original あなたが使いたくなくても Perl が C<$_> を仮定する場合がいくつかあります: =over 3 =item * =begin original The following functions use C<$_> as a default argument: =end original 以下の関数は C<$_> をデフォルト引数として使います: =begin original abs, alarm, chomp, chop, chr, chroot, cos, defined, eval, evalbytes, exp, glob, hex, int, lc, lcfirst, length, log, lstat, mkdir, oct, ord, pos, print, quotemeta, readlink, readpipe, ref, require, reverse (in scalar context only), rmdir, sin, split (on its second argument), sqrt, stat, study, uc, ucfirst, unlink, unpack. =end original abs, alarm, chomp, chop, chr, chroot, cos, defined, eval, evalbytes, exp, glob, hex, int, lc, lcfirst, length, log, lstat, mkdir, oct, ord, pos, print, quotemeta, readlink, readpipe, ref, require, reverse (スカラコンテキストのみ), rmdir, sin, split (の 2 番目の引数), sqrt, stat, study, uc, ucfirst, unlink, unpack. =item * =begin original All file tests (C<-f>, C<-d>) except for C<-t>, which defaults to STDIN. See L =end original デフォルトが STDIN である C<-t> を除く全てのファイルテスト(C<-f>, C<-d>) 。 L を参照してください。 =item * =begin original The pattern matching operations C, C and C (aka C) when used without an C<=~> operator. =end original C<=~> 演算子なしで用いられたパターンマッチ演算 C, C, C (またの名を C)。 =item * =begin original The default iterator variable in a C loop if no other variable is supplied. =end original C ループでの他の変数が補われなかった場合のデフォルトの 繰り返し変数。 =item * =begin original The implicit iterator variable in the C and C functions. =end original C 関数と C 関数の暗黙の繰り返し変数。 =item * =begin original The implicit variable of C. =end original C の暗黙の変数。 =item * =begin original The default place to put an input record when a C<< >> operation's result is tested by itself as the sole criterion of a C test. Outside a C test, this will not happen. =end original C<< >> が単独で C テストでテストされた場合の 結果を入れるデフォルトの場所。 C テスト以外ではこれは起こりません。 =back =begin original As C<$_> is a global variable, this may lead in some cases to unwanted side-effects. As of perl 5.10, you can now use a lexical version of C<$_> by declaring it in a file or in a block with C. Moreover, declaring C restores the global C<$_> in the current scope. =end original C<$_> はグローバル変数なので、望まないような副作用を引き起こす場合があります。 perl 5.10 から、ファイルやブロックで C で宣言することで、 レキシカル版の C<$_> が使えます。 さらに、C という宣言は現在のスコープでグローバルな C<$_> を 再構築します。 =begin original Mnemonic: underline is understood in certain operations. =end original 記憶法: 下線はある操作を覚えるためのもの。 =item @ARG =item @_ X<@_> X<@ARG> =begin original Within a subroutine the array C<@_> contains the parameters passed to that subroutine. Inside a subroutine, C<@_> is the default array for the array operators C, C, C, and C. =end original サブルーチンに入るときには、配列 C<@_> はサブルーチンに渡された パラメータです。 サブルーチンの内部では、C<@_> は配列演算子 C, C, C, C のデフォルト配列です。 =begin original See L. =end original L を参照して下さい。 =item $LIST_SEPARATOR =item $" X<$"> X<$LIST_SEPARATOR> =begin original When an array or an array slice is interpolated into a double-quoted string or a similar context such as C, its elements are separated by this value. Default is a space. For example, this: =end original 配列や配列スライスがダブルクォートされた文字列あるいは C のような 同様のコンテキスト展開されたとき、その要素はこの値で分割されます。 デフォルトは空白です。 例えば、以下のものは: print "The array is: @array\n"; =begin original is equivalent to this: =end original 以下と等価です: print "The array is: " . join($", @array) . "\n"; =begin original Mnemonic: works in double-quoted context. =end original 記憶法: ダブルクォートされた内容に対して動作します。 =item $PROCESS_ID =item $PID =item $$ X<$$> X<$PID> X<$PROCESS_ID> =begin original The process number of the Perl running this script. Though you I set this variable, doing so is generally discouraged, although it can be invaluable for some testing purposes. It will be reset automatically across C calls. =end original このスクリプトを実行している Perl のプロセス番号です。 この変数に値を設定することは I<可能> ですが、そうすることは一般的に 非推奨です; しかしこれは一部のテストの目的には計り知れない価値があります。 C 呼び出しがあると自動的にリセットされます。 =begin original Note for Linux and Debian GNU/kFreeBSD users: Before Perl v5.16.0 perl would emulate POSIX semantics on Linux systems using LinuxThreads, a partial implementation of POSIX Threads that has since been superseded by the Native POSIX Thread Library (NPTL). =end original Linux および Debian GNU/kFreeBSD ユーザーに対する注意: Perl v5.16.0 より 前では perl は LinuxThreads を使って Linux システムで POSIX の意味論を エミュレートしていました; これは POSIX Threads の部分的な実装で、 Native POSIX Thread Library (NPTL) で置き換えられました。 =begin original LinuxThreads is now obsolete on Linux, and and caching C like this made embedding perl unnecessarily complex (since you'd have to manually update the value of $$), so now C<$$> and C will always return the same values as the underlying C library. =end original LinuxThreads は Linux では古いもので、このように C を キャッシュすると組み込み perl が不必要に複雑になります ($$ の値を手動で 更新する必要があるからです); それで今では C<$$> と C は常に 基礎となる C ライブラリと同じ値を返します。 =begin original Debian GNU/kFreeBSD systems also used LinuxThreads up until and including the 6.0 release, but after that moved to FreeBSD thread semantics, which are POSIX-like. =end original Debian GNU/kFreeBSD システムは 6.0 リリースまで LinuxThreads を 使っていましたが、その後は POSIX 風の FreeBSD スレッドの意味論に 移行しました。 =begin original To see if your system is affected by this discrepancy check if C returns a false value. NTPL threads preserve the POSIX semantics. =end original あなたのシステムがこの非一貫性の影響を受けるかどうかを調べるには、 C が偽を返すかどうかを チェックしてください。 NTPL スレッドは POSIX の意味論を保存します。 =begin original Mnemonic: same as shells. =end original 記憶法: シェルと同じ。 =item $PROGRAM_NAME =item $0 X<$0> X<$PROGRAM_NAME> =begin original Contains the name of the program being executed. =end original 実行されているプログラムの名前を示します。 =begin original On some (but not all) operating systems assigning to C<$0> modifies the argument area that the C program sees. On some platforms you may have to use special C options or a different C to see the changes. Modifying the C<$0> is more useful as a way of indicating the current program state than it is for hiding the program you're running. =end original 一部の(しかし全てではありません)オペレーティングシステムでは C<$0> に代入を行なうことで B プログラムが見る引数エリアを修正します。 プラットフォームによっては、この変更を見るために 特殊な C オプションや、 他の C を使う必要があるものもあります。 C<$0> の修正は、実行しているプログラムを隠すよりは、 実行中のプログラムの状態を表示するときに、使うとよいでしょう。 =begin original Note that there are platform-specific limitations on the maximum length of C<$0>. In the most extreme case it may be limited to the space occupied by the original C<$0>. =end original C<$0> の最大長にはプラットフォーム固有の制限があることに注意してください。 最も極端な場合では、元の C<$0> で占められているサイズに制限されます。 =begin original In some platforms there may be arbitrary amount of padding, for example space characters, after the modified name as shown by C. In some platforms this padding may extend all the way to the original length of the argument area, no matter what you do (this is the case for example with Linux 2.2). =end original プラットフォームによっては、任意の量のパッディングがある場合があります; 例えば、C で見られる修正された名前の後の空白文字です。 プラットフォームによっては、このパッディングは、あなたが何をしたかに 関わらず、元の引数のエリア全体に拡張されるものもあります (例えば、これは Linux 2.2 の場合です)。 =begin original Note for BSD users: setting C<$0> does not completely remove "perl" from the ps(1) output. For example, setting C<$0> to C<"foobar"> may result in C<"perl: foobar (perl)"> (whether both the C<"perl: "> prefix and the " (perl)" suffix are shown depends on your exact BSD variant and version). This is an operating system feature, Perl cannot help it. =end original BSD ユーザーへの注意: C<$0> に値をセットしても、ps(1) の出力から 完全に "perl" の文字列は取り除かれません。 例えば、C<$0> に C<"foobar"> と設定すると、C<"perl: foobar (perl)"> という 結果になります (C<"perl: "> 接頭辞と" (perl)" 接尾辞が表示されるかどうかは 、正確な BSD の種類とバージョンに依存します)。 これはオペレーティングシステムの機能で、Perl は何もできません。 =begin original In multithreaded scripts Perl coordinates the threads so that any thread may modify its copy of the C<$0> and the change becomes visible to ps(1) (assuming the operating system plays along). Note that the view of C<$0> the other threads have will not change since they have their own copies of it. =end original マルチスレッドスクリプトでは、どのスレッドも自身の C<$0> のコピーを 変更できて、その変更が(OS が対応しているとして) ps(1) で見えるように、 Perl がスレッドを調整します。 他のスレッドが持っている C<$0> の見え方は(各自が自身のコピーを 持っているので)変わらないことに注意してください。 =begin original If the program has been given to perl via the switches C<-e> or C<-E>, C<$0> will contain the string C<"-e">. =end original プログラムが perl に C<-e> または C<-E> オプション経由で与えられた場合、 C<$0> には文字列 C<"-e"> を含みます。 =begin original On Linux as of perl 5.14 the legacy process name will be set with C, in addition to altering the POSIX name via C as perl has done since version 4.000. Now system utilities that read the legacy process name such as ps, top and killall will recognize the name you set when assigning to C<$0>. The string you supply will be cut off at 16 bytes, this is a limitation imposed by Linux. =end original Linux では perl 5.14 以降、perl がバージョン 4.000 以降行っていた C 経由での POSIX 名の置き換えに加えて、 レガシープロセス名は C で設定されます。 今では ps, top, killall のようにレガシープロセス名を読むユーティリティは C<$0> に代入することに設定される名前を認識します。 指定した文字列は 16 バイトに切り詰められます; これは Linux による 制限です。 =begin original Mnemonic: same as B and B. =end original 記憶法: B や B と同じ。 =item $REAL_GROUP_ID =item $GID =item $( X<$(> X<$GID> X<$REAL_GROUP_ID> =begin original The real gid of this process. If you are on a machine that supports membership in multiple groups simultaneously, gives a space separated list of groups you are in. The first number is the one returned by C, and the subsequent ones by C, one of which may be the same as the first number. =end original 本プロセスの実 gid を示します。 同時に複数のグループに所属できるマシンでは、所属するグループをスペースで 区切ったリストが得られます。 最初の数値は、C で返されるものです; その後に C が 返す値が続き、その中の 1 つは、最初の値と同じかもしれません。 =begin original However, a value assigned to C<$(> must be a single number used to set the real gid. So the value given by C<$(> should I be assigned back to C<$(> without being forced numeric, such as by adding zero. Note that this is different to the effective gid (C<$)>) which does take a list. =end original しかし、C<$(> に代入された値は実際の gid に設定された値の 一つでなければなりません。 従って、 C<$(> で与えられた値はゼロを足すことによって 数値化することなく C<$(> に書き戻すべきではありません。 これはリストが得られる実行 GID (C<$)>) とは違うことに注意してください。 =begin original You can change both the real gid and the effective gid at the same time by using C. Changes to C<$(> require a check to C<$!> to detect any possible errors after an attempted change. =end original C を使って、実 GID と実効 GID の両方を同時に変更できます。 C<$(> を変更した場合は、変更しようとしたときに起こりうるエラーを検出するために C<$!> をチェックする必要があります。 =begin original Mnemonic: parentheses are used to I things. The real gid is the group you I, if you're running setgid. =end original 記憶法: 括弧は、I<グループ化>に使われます。 setgid で実行中であれば、実 gid は I した、つまり離れたグループです。 =item $EFFECTIVE_GROUP_ID =item $EGID =item $) X<$)> X<$EGID> X<$EFFECTIVE_GROUP_ID> =begin original The effective gid of this process. If you are on a machine that supports membership in multiple groups simultaneously, gives a space separated list of groups you are in. The first number is the one returned by C, and the subsequent ones by C, one of which may be the same as the first number. =end original 本プロセスの実効 gid を示します。 同時に複数のグループに所属できるマシンでは、所属するグループをスペースで 区切ったリストが得られます。 最初の数値は、C で返されるものです; その後に C が 返す値が続き、その中の 1 つは、最初の値と同じかもしれません。 =begin original Similarly, a value assigned to C<$)> must also be a space-separated list of numbers. The first number sets the effective gid, and the rest (if any) are passed to C. To get the effect of an empty list for C, just repeat the new effective gid; that is, to force an effective gid of 5 and an effectively empty C list, say C< $) = "5 5" >. =end original 同様に、C<$)> へ代入する値はスペースで区切られた数値の リストでなければなりません。 最初の数値は実効 gid を設定し、残りの数値は(もしあれば) C に 渡されます。 C に空リストを渡したい場合は、単に新しい実効 gid を 繰り返してください; つまり、実効 gid を 5 にして、C に空リストを 渡したい場合は、C< $) = "5 5" > としてください。 =begin original You can change both the effective gid and the real gid at the same time by using C (use only a single numeric argument). Changes to C<$)> require a check to C<$!> to detect any possible errors after an attempted change. =end original C を使って、実効 GID と実 GID を同時に変更できます (1 つの数値引数だけが使えます)。 C<$)> を変更した場合は、変更時に起こりうるエラーを検出するために C<$!> の チェックが必要です。 =begin original C<< $< >>, C<< $> >>, C<$(> and C<$)> can be set only on machines that support the corresponding I routine. C<$(> and C<$)> can be swapped only on machines supporting C. =end original C<< $< >>, C<< $> >>, C<$(>, C<$)> は、実行するマシンで、 対応する I ルーティンがサポートされているときにのみ 設定可能です。 C<$(> と C<$)> の交換は、 C がサポートされているマシンでのみ可能です。 =begin original Mnemonic: parentheses are used to I things. The effective gid is the group that's I for you, if you're running setgid. =end original 記憶法: 括弧は、I<グループ化>に使われます。 setgid で実行中であれば、実効 gid は right な、つまり正しいグループです。 =item $REAL_USER_ID =item $UID =item $< X<< $< >> X<$UID> X<$REAL_USER_ID> =begin original The real uid of this process. You can change both the real uid and the effective uid at the same time by using C. Since changes to C<< $< >> require a system call, check C<$!> after a change attempt to detect any possible errors. =end original 本プロセスの実 uid を示します。 C を使って、実効 UID と実 UID を同時に変更できます。 C<< $< >> の変更にはシステムコールが必要なので、起こりうるエラーを 検出するために C<$!> のチェックが必要です。 =begin original Mnemonic: it's the uid you came I, if you're running setuid. =end original 記憶法: setuid で実行中であれば、そこ「から」来た uid です。 =item $EFFECTIVE_USER_ID =item $EUID =item $> X<< $> >> X<$EUID> X<$EFFECTIVE_USER_ID> =begin original The effective uid of this process. For example: =end original 本プロセスの実効 uid を示します。 例えば: =begin original $< = $>; # set real to effective uid ($<,$>) = ($>,$<); # swap real and effective uids =end original $< = $>; # 実 uid に実効 uid を設定 ($<,$>) = ($>,$<); # 実 uid と実効 uid を交換 =begin original You can change both the effective uid and the real uid at the same time by using C. Changes to C<< $> >> require a check to C<$!> to detect any possible errors after an attempted change. =end original C を使って、実効 UID と実 UID を同時に変更できます。 C<< $> >> を変更した場合は、変更時に起こりうるエラーを検出するために C<$!> のチェックが必要です。 =begin original C<< $< >> and C<< $> >> can be swapped only on machines supporting C. =end original C<< $< >> と C<< $> >> の交換は、C をサポートしている マシンでのみ可能です。 =begin original Mnemonic: it's the uid you went I, if you're running setuid. =end original 記憶法: setuid で実行中であれば、そこ I<へ> 行く uid です。 =item $SUBSCRIPT_SEPARATOR =item $SUBSEP =item $; X<$;> X<$SUBSEP> X =begin original The subscript separator for multidimensional array emulation. If you refer to a hash element as =end original 多次元配列のエミュレートのための添え字の区切文字。 ハッシュの要素を $foo{$a,$b,$c} =begin original it really means =end original のようにして参照すると、実際には以下のようになります $foo{join($;, $a, $b, $c)} =begin original But don't put =end original しかし、以下のようにしてはいけません =begin original @foo{$a,$b,$c} # a slice--note the @ =end original @foo{$a,$b,$c} # スライス--@ に注意 =begin original which means =end original これは以下の意味になります ($foo{$a},$foo{$b},$foo{$c}) =begin original Default is "\034", the same as SUBSEP in B. If your keys contain binary data there might not be any safe value for C<$;>. =end original デフォルトは "\034" で、C の SUBSEP と同じです。 使おうとしている key の値がバイナリのデータを含むならば、 C<$;> に設定する安全な値などはないことになります。 =begin original Consider using "real" multidimensional arrays as described in L. =end original L で記述している「本物の」多次元配列を使うようにしてください。 =begin original Mnemonic: comma (the syntactic subscript separator) is a semi-semicolon. =end original 記憶法: コンマ (構文上の添え字区切り文字) は セミ−セミコロンなのです。 =item $a =item $b X<$a> X<$b> =begin original Special package variables when using C, see L. Because of this specialness C<$a> and C<$b> don't need to be declared (using C, or C) even when using the C pragma. Don't lexicalize them with C or C if you want to be able to use them in the C comparison block or function. =end original C を使うときの特殊パッケージ変数です; L を 参照してください。 この特殊性により、C<$a> と C<$b> は、たとえ C プラグマを 使っているときでも (C や C を使って) 宣言する必要が ありません。 これを C 比較ブロックや関数で使えるようにしたい場合は、 C や C としてレキシカル化しないでください。 =item %ENV X<%ENV> =begin original The hash C<%ENV> contains your current environment. Setting a value in C changes the environment for any child processes you subsequently C off. =end original ハッシュ C<%ENV> には、その時点の環境変数が設定されています。 C に値を設定することで、 以後に C した子プロセスの環境変数を変更します。 =item $SYSTEM_FD_MAX =item $^F X<$^F> X<$SYSTEM_FD_MAX> =begin original The maximum system file descriptor, ordinarily 2. System file descriptors are passed to Ced processes, while higher file descriptors are not. Also, during an C, system file descriptors are preserved even if the C fails (ordinary file descriptors are closed before the C is attempted). The close-on-exec status of a file descriptor will be decided according to the value of C<$^F> when the corresponding file, pipe, or socket was opened, not the time of the C. =end original システムが使用するファイル記述子の最大値を示し、通常は 2 です。 システムファイル記述子は、C されたプロセスに渡されますが、 それ以降のファイル記述子は渡されません。 また、C の実行中は、システムファイル記述子は、 たとえ C が失敗しても、保存されます (通常のファイル記述子は、C が実行される前にクローズされます)。 ファイル記述子の close-on-exec のステータスは、C 時ではなく、 対応するファイル、パイプソケットの open 時の C<$^F> の値によって 決められます。 =item @F X<@F> =begin original The array C<@F> contains the fields of each line read in when autosplit mode is turned on. See L for the B<-a> switch. This array is package-specific, and must be declared or given a full package name if not in package main when running under C. =end original 自動 split モードが有効の場合、配列 C<@F> には読み込んだ行のフィールドを 含みます。 B<-a> オプションについては L を参照してください。 この配列はパッケージ固有であり、もし C で実行していて パッケージ main 以外の場合は完全なパッケージ名で定義したり与えたり しなければなりません。 =item @INC X<@INC> =begin original The array C<@INC> contains the list of places that the C, C, or C constructs look for their library files. It initially consists of the arguments to any B<-I> command-line switches, followed by the default Perl library, probably F, followed by ".", to represent the current directory. ("." will not be appended if taint checks are enabled, either by C<-T> or by C<-t>.) If you need to modify this at runtime, you should use the C pragma to get the machine-dependent library properly loaded also: =end original 配列 C<@INC> には、C, C, C によってライブラリファイルを 探すときに評価する場所のリストが納められています。 初期状態では、コマンドラインスイッチ B<-I> の引数と デフォルトの Perl ライブラリディレクトリ (おそらく F) とカレントディレクトリを表わす "." を順につなげたものです。 (C<-T> か C<-t> によって汚染チェックが有効の場合は、"." は追加されません。) 実行時にこれを変更する必要がある場合は、マシン依存のライブラリも正しく 読み込むために C を使うべきです: use lib '/mypath/libdir/'; use SomeMod; =begin original You can also insert hooks into the file inclusion system by putting Perl code directly into C<@INC>. Those hooks may be subroutine references, array references or blessed objects. See L for details. =end original Perl のコードを直接 C<@INC> に入れることで、ファイルインクルード機構に フックを挿入できます。 このフックはサブルーチンリファレンス、配列リファレンス、bless された オブジェクトが可能です。 詳細については L を参照してください。 =item %INC X<%INC> =begin original The hash C<%INC> contains entries for each filename included via the C, C, or C operators. The key is the filename you specified (with module names converted to pathnames), and the value is the location of the file found. The C operator uses this hash to determine whether a particular file has already been included. =end original ハッシュ C<%INC> は、C, C, C 演算子によって インクルードされた、個々のファイル名をエントリとして持っています。 key は指定したファイル名(モジュール名はパス名に変換されます)で、 value は見つかった場所となっています。 C 演算子は、指定されたファイル名が既に インクルードされているかを、このハッシュを使って調べます。 =begin original If the file was loaded via a hook (e.g. a subroutine reference, see L for a description of these hooks), this hook is by default inserted into C<%INC> in place of a filename. Note, however, that the hook may have set the C<%INC> entry by itself to provide some more specific info. =end original ファイルがフック(つまりサブルーチンリファレンス; フックに関する 説明については L を参照してください)経由で読み込まれた 場合、このフックはデフォルトではファイル名の代わりに C<%INC> に挿入されます。 しかし、フックはさらなる特定の情報を提供するために、自身で C<%INC> エントリを セットするかもしれないことに注意してください。 =item $INPLACE_EDIT =item $^I X<$^I> X<$INPLACE_EDIT> =begin original The current value of the inplace-edit extension. Use C to disable inplace editing. =end original 置き換え編集の拡張子の値を示します。 置き換え編集を禁止するためには、C を設定します。 =begin original Mnemonic: value of B<-i> switch. =end original 記憶法: B<-i> スイッチの値。 =item $^M X<$^M> =begin original By default, running out of memory is an untrappable, fatal error. However, if suitably built, Perl can use the contents of C<$^M> as an emergency memory pool after Cing. Suppose that your Perl were compiled with C<-DPERL_EMERGENCY_SBRK> and used Perl's malloc. Then =end original デフォルトでは、メモリ不足はトラップできない致命的エラーとなります。 しかし、もし適切に構築されていれば、Perl は C<$^M> の中身を C した後の緊急用メモリとして使えます。 Perl が C<-DPERL_EMERGENCY_SBRK> 付きでコンパイルされ、 Perl の malloc を使うと仮定します。そして、 $^M = 'a' x (1 << 16); =begin original would allocate a 64K buffer for use in an emergency. See the F file in the Perl distribution for information on how to add custom C compilation flags when compiling perl. To discourage casual use of this advanced feature, there is no L long name for this variable. =end original とすると緊急用の 64K のバッファを割り当てます。 perl をコンパイルするときに独自の C コンパイルフラグを追加する 方法についての情報は、Perl 配布パッケージに含まれている F ファイルを参照して下さい。 この拡張機能を気軽に使えないようにするために、 この変数には L の長い名前はありません。 =begin original This variable was added in Perl 5.004. =end original この変数は Perl 5.004 で追加されました。 =item $OSNAME =item $^O X<$^O> X<$OSNAME> =begin original The name of the operating system under which this copy of Perl was built, as determined during the configuration process. For examples see L. =end original この Perl が構築されたオペレーティングシステムの名前です; これは設定プロセス中に決定されます。 例えば L を参照してください。 =begin original The value is identical to C<$Config{'osname'}>. See also L and the B<-V> command-line switch documented in L. =end original この値は C<$Config{'osname'}> と同じです。 L と、L で文書化されている B<-V> コマンドラインスイッチも参照して下さい。 =begin original In Windows platforms, C<$^O> is not very helpful: since it is always C, it doesn't tell the difference between 95/98/ME/NT/2000/XP/CE/.NET. Use C or Win32::GetOSVersion() (see L and L) to distinguish between the variants. =end original Windows プラットフォームでは、C<$^O> はあまり役に立ちません: これは常に C となり、95/98/ME/NT/2000/XP/CE/.NET の違いを示していないからです。 これらを区別するためには、C や Win32::GetOSVersion() を 使ってください (L と L を参照してください)。 =begin original This variable was added in Perl 5.003. =end original この変数は Perl 5.003 で追加されました。 =item %SIG X<%SIG> =begin original The hash C<%SIG> contains signal handlers for signals. For example: =end original ハッシュ C<%SIG> にはシグナルのためのシグナルハンドラが含まれています。 例えば: =begin original sub handler { # 1st argument is signal name my($sig) = @_; print "Caught a SIG$sig--shutting down\n"; close(LOG); exit(0); } =end original sub handler { # 最初の引数はシグナル名 my($sig) = @_; print "Caught a SIG$sig--shutting down\n"; close(LOG); exit(0); } =begin original $SIG{'INT'} = \&handler; $SIG{'QUIT'} = \&handler; ... $SIG{'INT'} = 'DEFAULT'; # restore default action $SIG{'QUIT'} = 'IGNORE'; # ignore SIGQUIT =end original $SIG{'INT'} = \&handler; $SIG{'QUIT'} = \&handler; ... $SIG{'INT'} = 'DEFAULT'; # デフォルトの動作を復元 $SIG{'QUIT'} = 'IGNORE'; # SIGQUIT を無視 =begin original Using a value of C<'IGNORE'> usually has the effect of ignoring the signal, except for the C signal. See L for more about this special case. =end original C<'IGNORE'> という値は通常はシグナルの効果を無視するために使いますが、 C シグナルは例外です。 この特別な場合に関する詳細は L を参照して下さい。 =begin original Here are some other examples: =end original 以下にその他の例を示します: =begin original $SIG{"PIPE"} = "Plumber"; # assumes main::Plumber (not # recommended) $SIG{"PIPE"} = \&Plumber; # just fine; assume current # Plumber $SIG{"PIPE"} = *Plumber; # somewhat esoteric $SIG{"PIPE"} = Plumber(); # oops, what did Plumber() # return?? =end original $SIG{"PIPE"} = "Plumber"; # main::Plumber を仮定します(非推奨) $SIG{"PIPE"} = \&Plumber; # 問題なし; カレントの Plumber を仮定します $SIG{"PIPE"} = *Plumber; # 少々難解 $SIG{"PIPE"} = Plumber(); # げげ、Plumber() は何を返すの?? =begin original Be sure not to use a bareword as the name of a signal handler, lest you inadvertently call it. =end original 裸の単語をシグナルハンドラの名前として使わないようにしてください; 不注意で呼び出すのを避けるためです。 =begin original If your system has the C function then signal handlers are installed using it. This means you get reliable signal handling. =end original システムに sigaction() 関数がある場合は、シグナルハンドラが インストールされ使われました。 これにより、信頼性のあるシグナルハンドリングが可能になります。 =begin original The default delivery policy of signals changed in Perl 5.8.0 from immediate (also known as "unsafe") to deferred, also known as "safe signals". See L for more information. =end original デフォルトのシグナル配送ポリシーは Perl 5.8.0 に即時("unsafe"としても 知られます)から保留(「安全なシグナル」としても知られます)に変更されました。 さらなる情報については L を参照してください。 =begin original Certain internal hooks can be also set using the C<%SIG> hash. The routine indicated by C<$SIG{__WARN__}> is called when a warning message is about to be printed. The warning message is passed as the first argument. The presence of a C<__WARN__> hook causes the ordinary printing of warnings to C to be suppressed. You can use this to save warnings in a variable, or turn warnings into fatal errors, like this: =end original ある種の内部フックも %SIG ハッシュを使ってセットされます。 警告メッセージを表示しようとするときに C<$SIG{__WARN__}> で 示されたルーチンが呼び出されます。 警告メッセージは最初の引数として渡されます。 C<__WARN__> フックがあると、通常の C への警告の出力は行われません。 これを使って、警告メッセージを変数にいれたり、 あるいは以下のようにして警告を致命的エラーに変えたり出来ます: local $SIG{__WARN__} = sub { die $_[0] }; eval $proggie; =begin original As the C<'IGNORE'> hook is not supported by C<__WARN__>, you can disable warnings using the empty subroutine: =end original C<__WARN__> では C<'IGNORE'> フックには対応していないので、空サブルーチンを 使って警告を無効に出来ます: local $SIG{__WARN__} = sub {}; =begin original The routine indicated by C<$SIG{__DIE__}> is called when a fatal exception is about to be thrown. The error message is passed as the first argument. When a C<__DIE__> hook routine returns, the exception processing continues as it would have in the absence of the hook, unless the hook routine itself exits via a C, a loop exit, or a C. The C<__DIE__> handler is explicitly disabled during the call, so that you can die from a C<__DIE__> handler. Similarly for C<__WARN__>. =end original C<$SIG{__DIE__}> で示されるルーチンは 致命的な例外がまさに投げられようとするときに呼び出されます。 エラーメッセージは最初の引数として渡されます。 C<__DIE__> フックから戻ると、 例外処理はフックがなかったかのように再開されますが、 フックルーチン自体が C、ループ終了、C によって 終了した場合を除きます。 C<__DIE__> ハンドラは呼び出し中は明示的に無効になりますので、 C<__DIE__> ハンドラから die できます。 C<__WARN__> も同様です。 =begin original Due to an implementation glitch, the C<$SIG{__DIE__}> hook is called even inside an C. Do not use this to rewrite a pending exception in C<$@>, or as a bizarre substitute for overriding C. This strange action at a distance may be fixed in a future release so that C<$SIG{__DIE__}> is only called if your program is about to exit, as was the original intent. Any other use is deprecated. =end original 実装上の不具合により、C<$SIG{__DIE__}> は eval() の中でも 呼び出されます。これを、C<$@> の待っている例外を書き換えたり、 C を上書きするのに使わないでください。 この奇妙な行動は将来のリリースで修正される予定なので、 C<$SIG{__DIE__}> は当初の目的通り、 プログラムが終了するときにのみ呼び出されるようになります。 その他の用途は非推奨です。 =begin original C<__DIE__>/C<__WARN__> handlers are very special in one respect: they may be called to report (probable) errors found by the parser. In such a case the parser may be in inconsistent state, so any attempt to evaluate Perl code from such a handler will probably result in a segfault. This means that warnings or errors that result from parsing Perl should be used with extreme caution, like this: =end original C<__DIE__> と C<__WARN__> のハンドラは一つの点で非常に特別です: パーザによってエラー(であろうもの)を報告するために呼び出されることがある ことです。 このような場合、パーザは不安定な状態になっているかもしれないので、 ハンドラから Perl コードを評価しようとするとセグメンテーションフォールトが 発生するかもしれません。 Perl のパーズ中の警告やエラーは、以下のように非常に注意して扱うべきです; require Carp if defined $^S; Carp::confess("Something wrong") if defined &Carp::confess; die "Something wrong, but could not load Carp to give " . "backtrace...\n\t" . "To see backtrace try starting Perl with -MCarp switch"; =begin original Here the first line will load C I it is the parser who called the handler. The second line will print backtrace and die if C was available. The third line will be executed only if C was not available. =end original 一行目は、I<パーザが C<ハンドラ> を呼び出したのでなければ> Carp を読み込みます。 C<二行目> は、Carp が使えるならバックとレースを表示して die します。 三行目は Carp が使えないときにのみ実行されます。 =begin original Having to even think about the C<$^S> variable in your exception handlers is simply wrong. C<$SIG{__DIE__}> as currently implemented invites grievous and difficult to track down errors. Avoid it and use an C or CORE::GLOBAL::die override instead. =end original 例外ハンドラの中で C<$^S> を使おうなどとは考えてもいけません。 現在の実装の C<$SIG{__DIE__}> は面倒を引き寄せ、エラーの追跡を困難にします。 これの代わりに C を使うか、CORE::GLOBAL::die をオーバーライドしてください。 =begin original See L, L, L, and L for additional information. =end original 追加の情報については L, L, L, L を参照して下さい。 =item $BASETIME =item $^T X<$^T> X<$BASETIME> =begin original The time at which the program began running, in seconds since the epoch (beginning of 1970). The values returned by the B<-M>, B<-A>, and B<-C> filetests are based on this value. =end original プログラムを実行開始した時刻を、紀元 (1970年の始め) からの秒数で示したものです。 ファイルテスト B<-M>、B<-A>、B<-C> で返される値は、この値に基づいています。 =item $PERL_VERSION =item $^V X<$^V> X<$PERL_VERSION> =begin original The revision, version, and subversion of the Perl interpreter, represented as a C object. =end original C オブジェクトとして表現される revision, version, subversion。 =begin original This variable first appeared in perl 5.6.0; earlier versions of perl will see an undefined value. Before perl 5.10.0 C<$^V> was represented as a v-string. =end original この変数は perl 5.6.0 で最初に現れました; それより前のバージョンでは 未定義値となります。 perl 5.10.0 以前では C<$^V> は v-string 形式で表現されます。 =begin original C<$^V> can be used to determine whether the Perl interpreter executing a script is in the right range of versions. For example: =end original C<$^V> はスクリプトを実行している Perl インタプリタのバージョンが 正しい範囲に入っているかを調べるのに使えます。 例えば: warn "Hashes not randomized!\n" if !$^V or $^V lt v5.8.1 =begin original To convert C<$^V> into its string representation use C's C<"%vd"> conversion: =end original C<$^V> を文字列表現に変換するには C の C<"%vd"> 変換を使います: =begin original printf "version is v%vd\n", $^V; # Perl's version =end original printf "version is v%vd\n", $^V; # Perl のバージョン =begin original See the documentation of C and C for a convenient way to fail if the running Perl interpreter is too old. =end original 実行する Perl インタプリタが古すぎる場合に終了する便利な方法に ついては C と C のドキュメントを 参照して下さい。 =begin original See also C<$]> for an older representation of the Perl version. =end original Perl バージョンの古い表現については C<$]> も参照して下さい。 =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =begin original Mnemonic: use ^V for Version Control. =end original 記憶法: ^V をバージョンコントロールに使います。 =item ${^WIN32_SLOPPY_STAT} X<${^WIN32_SLOPPY_STAT}> X X =begin original If this variable is set to a true value, then C on Windows will not try to open the file. This means that the link count cannot be determined and file attributes may be out of date if additional hardlinks to the file exist. On the other hand, not opening the file is considerably faster, especially for files on network drives. =end original この変数が真の値にセットされると、Windows での C はファイルを オープンしようとはしません。 これは、このファイルへの追加のハードリンクが存在する場合、リンクカウントを 決定できませんし、ファイル属性が古いものになるかもしれないことを 意味します。 一方、ファイルを開かないので、(特にファイルがネットワークドライブにある 場合は)大幅に高速です。 =begin original This variable could be set in the F file to configure the local Perl installation to use "sloppy" C by default. See the documentation for B<-f> in L for more information about site customization. =end original デフォルトで「ずさんな」C を使うために、この変数は、ローカルな Perl を設定するための F で設定できます。 サイトカスタマイズに関するさらなる情報については L の B<-f> を参照してください。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =item $EXECUTABLE_NAME =item $^X X<$^X> X<$EXECUTABLE_NAME> =begin original The name used to execute the current copy of Perl, from C's C or (where supported) F. =end original Perl バイナリ自身が実行された時の名前を C の argv[0] または (対応していれば) F から持ってきたものです。 =begin original Depending on the host operating system, the value of C<$^X> may be a relative or absolute pathname of the perl program file, or may be the string used to invoke perl but not the pathname of the perl program file. Also, most operating systems permit invoking programs that are not in the PATH environment variable, so there is no guarantee that the value of C<$^X> is in PATH. For VMS, the value may or may not include a version number. =end original ホスト OS に依存して、C<$^X> の値は perl プログラムファイルの絶対パスかも しれませんし、相対パスかもしれませんし、perl を起動するために使われる 文字列ではありますが perl プログラムファイルのパス名ではないかもしれません。 また、ほとんどの OS は PATH 環境変数にない位置のプログラムを起動することを 許しているので、C<$^X> の値が PATH にある保証はありません。 VMS では、この値はバージョン番号を含む場合も含まない場合もあります。 =begin original You usually can use the value of C<$^X> to re-invoke an independent copy of the same perl that is currently running, e.g., =end original 通常は、現在実行中のものと同じ perl の独立したコピーを再起動するために C<$^X> の値を使えます; つまり: @first_run = `$^X -le "print int rand 100 for 1..100"`; =begin original But recall that not all operating systems support forking or capturing of the output of commands, so this complex statement may not be portable. =end original しかし、全ての OS が fork やコマンドの出力の捕捉に対応しているわけでは ないので、この複雑な文は移植性がないかもしれないことを忘れないでください。 =begin original It is not safe to use the value of C<$^X> as a path name of a file, as some operating systems that have a mandatory suffix on executable files do not require use of the suffix when invoking a command. To convert the value of C<$^X> to a path name, use the following statements: =end original C<$^X> の値をファイルのパス名として使うのは安全ではありません; 実行ファイルに固定の接尾辞があり、コマンドの起動時には接尾辞が不要な OS も あるからです。 C<$^X> の値をパス名に変換するには、以下のコードを使ってください: =begin original # Build up a set of file names (not command names). use Config; my $this_perl = $^X; if ($^O ne 'VMS') { $this_perl .= $Config{_exe} unless $this_perl =~ m/$Config{_exe}$/i; } =end original # (コマンド名ではなく)ファイル名を構築する。 use Config; my $this_perl = $^X; if ($^O ne 'VMS') { $this_perl .= $Config{_exe} unless $this_perl =~ m/$Config{_exe}$/i; } =begin original Because many operating systems permit anyone with read access to the Perl program file to make a copy of it, patch the copy, and then execute the copy, the security-conscious Perl programmer should take care to invoke the installed copy of perl, not the copy referenced by C<$^X>. The following statements accomplish this goal, and produce a pathname that can be invoked as a command or referenced as a file. =end original 多くの OS が Perl のプログラムファイルのコピーを作って、コピーに パッチを当て、それを実行するための読み込み権限を全員に与えているので、 セキュリティ意識のある Perl プログラマは C<$^X> で参照されているコピーではなく、 インストールされている perl を起動するように気をつけるべきです。 以下のコードはこの目的を達成し、コマンドとして起動したりファイルとして 参照するためのパス名を作成します。 use Config; my $secure_perl_path = $Config{perlpath}; if ($^O ne 'VMS') { $secure_perl_path .= $Config{_exe} unless $secure_perl_path =~ m/$Config{_exe}$/i; } =back =head2 Variables related to regular expressions (正規表現に関する変数) =begin original Most of the special variables related to regular expressions are side effects. Perl sets these variables when it has a successful match, so you should check the match result before using them. For instance: =end original 正規表現に関連する特殊変数のほとんどは副作用です。 Perl はマッチングに成功したときにこれらの変数を設定するので、変数を 使う前にマッチングの結果をチェックするべきです。 例えば: if( /P(A)TT(ER)N/ ) { print "I found $1 and $2\n"; } =begin original These variables are read-only and dynamically-scoped, unless we note otherwise. =end original これらの変数は特に記さない限り読み込み専用で動的スコープを持ちます。 =begin original The dynamic nature of the regular expression variables means that their value is limited to the block that they are in, as demonstrated by this bit of code: =end original 正規表現変数の動的な特性により、以下のコード片で示されているように、 変数の値はブロック内に制限されます: my $outer = 'Wallace and Grommit'; my $inner = 'Mutt and Jeff'; my $pattern = qr/(\S+) and (\S+)/; sub show_n { print "\$1 is $1; \$2 is $2\n" } { OUTER: show_n() if $outer =~ m/$pattern/; INNER: { show_n() if $inner =~ m/$pattern/; } show_n(); } =begin original The output shows that while in the C block, the values of C<$1> and C<$2> are from the match against C<$outer>. Inside the C block, the values of C<$1> and C<$2> are from the match against C<$inner>, but only until the end of the block (i.e. the dynamic scope). After the C block completes, the values of C<$1> and C<$2> return to the values for the match against C<$outer> even though we have not made another match: =end original 出力から分かることは、C ブロックの間では C<$1> と C<$2> の値は C<$outer> に対するマッチングからのものになります。 C ブロックの内側では、C<$1> と C<$2> の値は C<$inner> での マッチングからのものになりますが、ブロックの最後までです (つまり、 動的スコープを持ちます)。 C ブロックの終了後、C<$1> と C<$2> の値は、他のマッチングがなくても C<$outer> に対するマッチングからのものになります: $1 is Wallace; $2 is Grommit $1 is Mutt; $2 is Jeff $1 is Wallace; $2 is Grommit =begin original Due to an unfortunate accident of Perl's implementation, C imposes a considerable performance penalty on all regular expression matches in a program because it uses the C<$`>, C<$&>, and C<$'>, regardless of whether they occur in the scope of C. For that reason, saying C in libraries is strongly discouraged unless you import it without the match variables: =end original Perl の実装における不幸な事故により、C は C<$`>, C<$&>, C<$'> を使うので、プログラム中の全ての 正規表現マッチングにおいてかなりの性能低下を引き起こします; これは C のスコープ内かどうかに関わりません。 この理由により、ライブラリで C を使うのは、マッチング変数を 使わずにインポートするのでない限りできるだけ避けてください。 use English '-no_match_vars' =begin original The C and C modules can help you find uses of these problematic match variables in your code. =end original C モジュールと C モジュールは コードの中でのこれらの問題のあるマッチング変数の仕様を探す助けになります。 =begin original Since Perl 5.10, you can use the C

match operator flag and the C<${^PREMATCH}>, C<${^MATCH}>, and C<${^POSTMATCH}> variables instead so you only suffer the performance penalties. =end original Perl 5.10 から、C

マッチングフラグと、 C<${^PREMATCH}>, C<${^MATCH}>, C<${^POSTMATCH}> 変数を代わりに使えて、 パフォーマンスのペナルティだけを受けます。 =over 8 =item $> ($1, $2, ...) X<$1> X<$2> X<$3> =begin original Contains the subpattern from the corresponding set of capturing parentheses from the last successful pattern match, not counting patterns matched in nested blocks that have been exited already. =end original 最後に成功したパターンマッチングで対応する括弧のサブパターンにマッチングした 文字列が入っているが、既に抜けてしまったブロックでの パターンマッチングは勘定に入れません。 =begin original These variables are read-only and dynamically-scoped. =end original これらの変数はすべて読み込み専用で、動的なスコープを持ちます。 =begin original Mnemonic: like \digits. =end original 記憶法: \(数字) のようなもの。 =item $MATCH =item $& X<$&> X<$MATCH> =begin original The string matched by the last successful pattern match (not counting any matches hidden within a BLOCK or C enclosed by the current BLOCK). =end original 最後に成功したパターンマッチでマッチした文字列 (現在の BLOCK で囲まれた BLOCK や C で隠れている部分でのマッチは 勘定に入れません)。 =begin original The use of this variable anywhere in a program imposes a considerable performance penalty on all regular expression matches. To avoid this penalty, you can extract the same substring by using L. Starting with Perl 5.10, you can use the C

match flag and the C<${^MATCH}> variable to do the same thing for particular match operations. =end original この変数をプログラムのどこかで使うと、プログラム中の全ての正規表現 マッチングにおいてかなりの性能低下を引き起こします。 このペナルティを避けるために、同じ部分文字列を L を使って 抽出できます。 Perl 5.10 から、C

マッチングフラグと C<${^MATCH}> 変数を 特定のマッチング演算子について同じことをするために使えます。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =begin original Mnemonic: like C<&> in some editors. =end original 記憶法: あるエディタの C<&> ようなもの。 =item ${^MATCH} X<${^MATCH}> =begin original This is similar to C<$&> (C<$MATCH>) except that it does not incur the performance penalty associated with that variable, and is only guaranteed to return a defined value when the pattern was compiled or executed with the C

modifier. =end original これは C<$&> (C<$MATCH>) と同様ですが、この変数と関連付けられた性能上の ペナルティを被らず、パターンが C

修飾子付きでコンパイルまたは実行された 場合にのみ定義された値を返すことが保証されます。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =item $PREMATCH =item $` X<$`> X<$PREMATCH> X<${^PREMATCH}> =begin original The string preceding whatever was matched by the last successful pattern match, not counting any matches hidden within a BLOCK or C enclosed by the current BLOCK. =end original 最後の成功したパターンマッチ (現在のBLOCK で囲まれた BLOCK や eval() に隠れている部分でのマッチは勘定に入れません) で マッチした部分の前の文字列。 =begin original The use of this variable anywhere in a program imposes a considerable performance penalty on all regular expression matches. To avoid this penalty, you can extract the same substring by using L. Starting with Perl 5.10, you can use the C

match flag and the C<${^PREMATCH}> variable to do the same thing for particular match operations. =end original この変数をプログラムのどこかで使うと、プログラム中の全ての正規表現 マッチングにおいてかなりの性能低下を引き起こします。 このペナルティを避けるために、同じ部分文字列を L を使って 抽出できます。 Perl 5.10 から、C

マッチングフラグと C<${^PREMATCH}> 変数を 特定のマッチング演算子について同じことをするために使えます。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =begin original Mnemonic: C<`> often precedes a quoted string. =end original 記憶法: C<`> は多くの場合クォートされた文字列の前にある。 =item ${^PREMATCH} X<$`> X<${^PREMATCH}> =begin original This is similar to C<$`> ($PREMATCH) except that it does not incur the performance penalty associated with that variable, and is only guaranteed to return a defined value when the pattern was compiled or executed with the C

modifier. =end original これは C<$`> ($PREMATCH) と同様ですが、この変数と関連付けられた性能上の ペナルティを被らず、パターンが C

修飾子付きでコンパイルまたは実行された 場合にのみ定義された値を返すことが保証されます。 =begin original This variable was added in Perl 5.10 =end original この変数は Perl 5.10 で追加されました。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =item $POSTMATCH =item $' X<$'> X<$POSTMATCH> X<${^POSTMATCH}> X<@-> =begin original The string following whatever was matched by the last successful pattern match (not counting any matches hidden within a BLOCK or C enclosed by the current BLOCK). Example: =end original 最後の成功したパターンマッチ (現在のBLOCK で囲まれた BLOCK や eval() に隠れている部分でのマッチは勘定に入れない) で マッチした部分に続く文字列。 例: =begin original local $_ = 'abcdefghi'; /def/; print "$`:$&:$'\n"; # prints abc:def:ghi =end original local $_ = 'abcdefghi'; /def/; print "$`:$&:$'\n"; # abc:def:ghi を表示 =begin original The use of this variable anywhere in a program imposes a considerable performance penalty on all regular expression matches. To avoid this penalty, you can extract the same substring by using L. Starting with Perl 5.10, you can use the C

match flag and the C<${^POSTMATCH}> variable to do the same thing for particular match operations. =end original この変数をプログラムのどこかで使うと、プログラム中の全ての正規表現 マッチングにおいてかなりの性能低下を引き起こします。 このペナルティを避けるために、同じ部分文字列を L を使って 抽出できます。 Perl 5.10 から、C

マッチングフラグと C<${^POSTMATCH}> 変数を 特定のマッチング演算子について同じことをするために使えます。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =begin original Mnemonic: C<'> often follows a quoted string. =end original 記憶法: C<'> は多くの場合クォートされた文字列の後にある。 =item ${^POSTMATCH} X<${^POSTMATCH}> X<$'> X<$POSTMATCH> =begin original This is similar to C<$'> (C<$POSTMATCH>) except that it does not incur the performance penalty associated with that variable, and is only guaranteed to return a defined value when the pattern was compiled or executed with the C

modifier. =end original これは C<$'> (C<$POSTMATCH>) と同様ですが、この変数と関連付けられた性能上の ペナルティを被らず、パターンが C

修飾子付きでコンパイルまたは実行された 場合にのみ定義された値を返すことが保証されます。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =item $LAST_PAREN_MATCH =item $+ X<$+> X<$LAST_PAREN_MATCH> =begin original The text matched by the last bracket of the last successful search pattern. This is useful if you don't know which one of a set of alternative patterns matched. For example: =end original 最後に検索されたパターンの最後の括弧にマッチした文字列。 これはいくつかの選択肢の中でどれがマッチするのか わからないような場合に使うと便利です。 例えば: /Version: (.*)|Revision: (.*)/ && ($rev = $+); =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =begin original Mnemonic: be positive and forward looking. =end original 記憶法: ポジティブで前向き。 =item $LAST_SUBMATCH_RESULT =item $^N X<$^N> X<$LAST_SUBMATCH_RESULT> =begin original The text matched by the used group most-recently closed (i.e. the group with the rightmost closing parenthesis) of the last successful search pattern. =end original 最近のマッチングに成功した検索パターンのうち、一番最近に閉じられた 使われたグループ(つまり、一番右の閉じかっこのグループ)にマッチングした テキスト。 =begin original This is primarily used inside C<(?{...})> blocks for examining text recently matched. For example, to effectively capture text to a variable (in addition to C<$1>, C<$2>, etc.), replace C<(...)> with =end original これは主として最近マッチしたテキストを調べるために C<(?{...})> ブロックの 中で使われます。 例えば、(C<$1>, C<$2> などに加えて) テキストを変数に効率的に捕捉するには、 C<(...)> を以下で置き換えます: (?:(...)(?{ $var = $^N })) =begin original By setting and then using C<$var> in this way relieves you from having to worry about exactly which numbered set of parentheses they are. =end original C<$var> をこの方法で設定してから使うことで、かっこの組の番号について 気にしなくてすむようになります。 =begin original This variable was added in Perl 5.8. =end original この変数は Perl 5.8 で追加されました。 =begin original Mnemonic: the (possibly) Nested parenthesis that most recently closed. =end original 記憶法: もっとも最近閉じられた、(おそらく) ネストした (Nested) かっこ。 =item @LAST_MATCH_END =item @+ X<@+> X<@LAST_MATCH_END> =begin original This array holds the offsets of the ends of the last successful submatches in the currently active dynamic scope. C<$+[0]> is the offset into the string of the end of the entire match. This is the same value as what the C function returns when called on the variable that was matched against. The Ith element of this array holds the offset of the Ith submatch, so C<$+[1]> is the offset past where C<$1> ends, C<$+[2]> the offset past where C<$2> ends, and so on. You can use C<$#+> to determine how many subgroups were in the last successful match. See the examples given for the C<@-> variable. =end original この配列は、現在アクティブな動的スコープで最後に成功した部分マッチングの 最後へのオフセットを保持します。 C<$+[0]> はマッチ全体の文字列の最後へのオフセットです。 これはマッチした変数に対して C 関数を呼び出したときの返り値と同じです。 この配列の I 番目の要素は I 番目のサブマッチのオフセットを 保持しているので、C<$+[1]> は過去の C<$1> の終わりのオフセット、C<$+[2]> は C<$2> のオフセット、という形になります。 C<$#+> は最後に成功したマッチでいくつサブグループがあるかを決定するのに 使えます。 C<@-> 変数の例を参照して下さい。 =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =item %LAST_PAREN_MATCH =item %+ X<%+> X<%LAST_PAREN_MATCH> =begin original Similar to C<@+>, the C<%+> hash allows access to the named capture buffers, should they exist, in the last successful match in the currently active dynamic scope. =end original C<@+> と同様、C<%+> ハッシュは、現在アクティブな動的スコープで最後に成功した マッチングの名前付き捕捉バッファ(存在すれば)へのアクセスを可能にします。 =begin original For example, C<$+{foo}> is equivalent to C<$1> after the following match: =end original 例えば、C<$+{foo}> は以下のマッチングの後の C<$1> と等価です: 'foo' =~ /(?foo)/; =begin original The keys of the C<%+> hash list only the names of buffers that have captured (and that are thus associated to defined values). =end original C<%+> ハッシュのキーは捕捉された(従って定義された値と結びついている) バッファの名前のみの一覧です。 =begin original The underlying behaviour of C<%+> is provided by the L module. =end original C<%+> の基礎となる振る舞いは L モジュールで 提供されています。 =begin original B C<%-> and C<%+> are tied views into a common internal hash associated with the last successful regular expression. Therefore mixing iterative access to them via C may have unpredictable results. Likewise, if the last successful match changes, then the results may be surprising. =end original B<注意:> C<%-> and C<%+> は最後に成功した正規表現と関連付けられた共通の 内部ハッシュと tie されたビューです。 従って、C 経由で混ざった反復アクセスを行うと、予測不能の結果と なります。 同様に、最後に成功したマッチングを変更すると、結果は驚くべきものとなります。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =item @LAST_MATCH_START =item @- X<@-> X<@LAST_MATCH_START> =begin original C<$-[0]> is the offset of the start of the last successful match. C<$-[>IC<]> is the offset of the start of the substring matched by I-th subpattern, or undef if the subpattern did not match. =end original C<$-[0]> は最後に成功したマッチの先頭のオフセットです。 C<$-[>IC<]> は I 番目のサブパターンにマッチした部分文字列の先頭の オフセットです; サブパターンがマッチしなかった場合は undef です。 =begin original Thus, after a match against C<$_>, C<$&> coincides with C. Similarly, $I coincides with C if C<$-[n]> is defined, and $+ coincides with C. One can use C<$#-> to find the last matched subgroup in the last successful match. Contrast with C<$#+>, the number of subgroups in the regular expression. Compare with C<@+>. =end original 従って C<$_> のマッチの後、C<$&> は C と 一致します。 同様に、$I は、C<$-[n]> が定義されていれば C と一致し、 $+ は C と一致します。 C<$#-> は直前に成功したマッチで最後のマッチしたサブグループを 探すのに使えます。 正規表現でのサブグループの数である C<$#+> と対照的です。 C<@+> と比較してください。 =begin original This array holds the offsets of the beginnings of the last successful submatches in the currently active dynamic scope. C<$-[0]> is the offset into the string of the beginning of the entire match. The Ith element of this array holds the offset of the Ith submatch, so C<$-[1]> is the offset where C<$1> begins, C<$-[2]> the offset where C<$2> begins, and so on. =end original この配列は現在アクティブな動的スコープ内で最後に成功した サブマッチの先頭位置のオフセットを保持します。 C<$-[0]> はマッチ全体の先頭の文字列へのオフセットです。 この配列の I 番目の要素は I 番目のサブマッチへの オフセットを保持しますので、C<$-[1]> は C<$1> の先頭への オフセット、C<$-[2]> は C<$2> の先頭へのオフセット、などとなります。 =begin original After a match against some variable C<$var>: =end original ある変数 C<$var> でマッチした後、以下のようになります。 =over 5 =item C<$`> is the same as C (C<$`> は C と同じです) =item C<$&> is the same as C (C<$&> は C と同じです) =item C<$'> is the same as C (C<$'> は C と同じです) =item C<$1> is the same as C (C<$1> は C と同じです) =item C<$2> is the same as C (C<$2> は C と同じです) =item C<$3> is the same as C (C<$3> は C と同じです) =back =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =item %LAST_MATCH_START =item %- X<%-> X<%LAST_MATCH_START> =begin original Similar to C<%+>, this variable allows access to the named capture groups in the last successful match in the currently active dynamic scope. To each capture group name found in the regular expression, it associates a reference to an array containing the list of values captured by all buffers with that name (should there be several of them), in the order where they appear. =end original C<%+> と同様、この変数は現在アクティブな動的スコープで最後に成功した マッチングの名前付き捕捉グループへのアクセスを可能にします。 正規表現中に捕捉グループ名が現れるごとに、その名前のグループ全てで (複数あるでしょう)捕捉されている値のリストを出現順で含む配列への リファレンスと関連付けられます。 =begin original Here's an example: =end original 以下は例です: if ('1234' =~ /(?1)(?2)(?3)(?4)/) { foreach my $bufname (sort keys %-) { my $ary = $-{$bufname}; foreach my $idx (0..$#$ary) { print "\$-{$bufname}[$idx] : ", (defined($ary->[$idx]) ? "'$ary->[$idx]'" : "undef"), "\n"; } } } =begin original would print out: =end original とすると、以下のものが表示されます: $-{A}[0] : '1' $-{A}[1] : '3' $-{B}[0] : '2' $-{B}[1] : '4' =begin original The keys of the C<%-> hash correspond to all buffer names found in the regular expression. =end original C<%-> ハッシュのキーは正規表現で見つかった全てのバッファ名に対応します。 =begin original The behaviour of C<%-> is implemented via the L module. =end original C<%-> の振る舞いは L モジュールを使って 実装されています。 =begin original B C<%-> and C<%+> are tied views into a common internal hash associated with the last successful regular expression. Therefore mixing iterative access to them via C may have unpredictable results. Likewise, if the last successful match changes, then the results may be surprising. =end original B<注意:> C<%-> and C<%+> は最後に成功した正規表現と関連付けられた共通の 内部ハッシュと tie されたビューです。 従って、C 経由で混ざった反復アクセスを行うと、予測不能の結果と なります。 同様に、最後に成功したマッチングを変更すると、結果は驚くべきものとなります。 =begin original This variable was added in Perl 5.10 =end original この変数は Perl 5.10 で追加されました。 =begin original This variable is read-only and dynamically-scoped. =end original この変数は読み込み専用で動的スコープを持ちます。 =item $LAST_REGEXP_CODE_RESULT =item $^R X<$^R> X<$LAST_REGEXP_CODE_RESULT> =begin original The result of evaluation of the last successful C<(?{ code })> regular expression assertion (see L). May be written to. =end original 最後に成功した C<(?{ code })> 正規表現アサートの評価の結果です (L を参照して下さい)。おそらくもっと書き足します。 =begin original This variable was added in Perl 5.005. =end original この変数は Perl 5.005 で追加されました。 =item ${^RE_DEBUG_FLAGS} X<${^RE_DEBUG_FLAGS}> =begin original The current value of the regex debugging flags. Set to 0 for no debug output even when the C module is loaded. See L for details. =end original 正規表現デバッグフラグの現在の値です。 0 をセットすると、C モジュールが読み込まれていてもデバッグ出力を 行いません。 詳細については L を参照してください。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =item ${^RE_TRIE_MAXBUF} X<${^RE_TRIE_MAXBUF}> =begin original Controls how certain regex optimisations are applied and how much memory they utilize. This value by default is 65536 which corresponds to a 512kB temporary cache. Set this to a higher value to trade memory for speed when matching large alternations. Set it to a lower value if you want the optimisations to be as conservative of memory as possible but still occur, and set it to a negative value to prevent the optimisation and conserve the most memory. Under normal situations this variable should be of no interest to you. =end original どれくらい正規表現の最適化を行い、どれくらいのメモリを利用するかを 制御します。 デフォルトではこの値は 65536 で、512kB の一時キャッシュに相当します。 この値を大きくすると、大きなものとマッチングするときに速度を重視して多くの メモリを使います。 もしできるだけ保守的なメモリ消費をするけれども使うこともある、というように 最適化したい場合は小さい値を設定します; 負の値を設定すると最適化は行わず、 最大限メモリを節約します。 通常の状況では、この変数はあなたの興味を引くものではないでしょう。 =begin original This variable was added in Perl 5.10. =end original この変数は Perl 5.10 で追加されました。 =back =head2 Variables related to filehandles (ファイルハンドル関連の変数) =begin original Variables that depend on the currently selected filehandle may be set by calling an appropriate object method on the C object, although this is less efficient than using the regular built-in variables. (Summary lines below for this contain the word HANDLE.) First you must say =end original 現在選択されているファイルハンドルに依存する変数の場合には、代わりに C オブジェクトに関するオブジェクトメソッドを呼び出して 設定できますが、通常の組み込み変数よりは効率が落ちます。 (以下の要約では HANDLE という語を含んでいます。) まず最初に必ず、 use IO::Handle; =begin original after which you may use either =end original と書き、その後で以下のように書くか、 method HANDLE EXPR =begin original or more safely, =end original もしくはより安全に以下のように書きます: HANDLE->method(EXPR) =begin original Each method returns the old value of the C attribute. The methods each take an optional EXPR, which, if supplied, specifies the new value for the C attribute in question. If not supplied, most methods do nothing to the current value--except for C, which will assume a 1 for you, just to be different. =end original それぞれのメソッドは、C 属性の昔の値を返します。 メソッドはそれぞれ EXPR をとることができ、指定した場合には、問題の C 属性の新しい値を指定することになります。 指定しない場合には、多くのメソッドでは現在の値に対して何もしませんが、 C では 1 を指定されたものとします。 =begin original Because loading in the C class is an expensive operation, you should learn how to use the regular built-in variables. =end original C クラスを読み込むのはコストの高い操作なので、 通常の組み込み変数の使い方を覚えるべきです。 =begin original A few of these variables are considered "read-only". This means that if you try to assign to this variable, either directly or indirectly through a reference, you'll raise a run-time exception. =end original これらの変数のいくつかは「読み込み専用」と考えられます。 つまり、もしこの変数に対して直接またはリファレンスを通して間接に 代入しようとすると、、実行時エラーが発生します。 =begin original You should be very careful when modifying the default values of most special variables described in this document. In most cases you want to localize these variables before changing them, since if you don't, the change may affect other modules which rely on the default values of the special variables that you have changed. This is one of the correct ways to read the whole file at once: =end original この文書に記述されているほとんどの特殊変数のデフォルト値を変更するときには とても慎重になるべきです。 ほとんどの場合、これらの変数を変更する前にこれらをローカル化したいでしょう; さもなければ、あなたが変更した特殊変数のデフォルト値に依存している その他のモジュールにも影響を与えるかもしれないからです。 これはファイル全体を一度に読み込む正しい方法の一つです: =begin original open my $fh, "<", "foo" or die $!; local $/; # enable localized slurp mode my $content = <$fh>; close $fh; =end original open my $fh, "<", "foo" or die $!; local $/; # ローカル化された吸い込みモードを有効にする my $content = <$fh>; close $fh; =begin original But the following code is quite bad: =end original しかし以下のコードは完全に悪いものです: =begin original open my $fh, "<", "foo" or die $!; undef $/; # enable slurp mode my $content = <$fh>; close $fh; =end original open my $fh, "<", "foo" or die $!; undef $/; # 吸い込みモードを有効にする my $content = <$fh>; close $fh; =begin original since some other module, may want to read data from some file in the default "line mode", so if the code we have just presented has been executed, the global value of C<$/> is now changed for any other code running inside the same Perl interpreter. =end original なぜなら、その他のモジュールでは、デフォルトの「行モード」でファイルを 読もうとするかも知れませんが、もし単に前述のコードを実行すると、 C<$/> のグローバルな値が、同じ Perl インタプリタ内で実行される その他のコードに対しても変更されるからです。 =begin original Usually when a variable is localized you want to make sure that this change affects the shortest scope possible. So unless you are already inside some short C<{}> block, you should create one yourself. For example: =end original 通常、変数をローカル化するとき、この変更ができるだけ最短のスコープに 影響を与えることを確実にしたいでしょう。 従って、既に小さい C<{}> ブロックの内側であるのでない限り、それを 自身で作るべきです。 例えば: my $content = ''; open my $fh, "<", "foo" or die $!; { local $/; $content = <$fh>; } close $fh; =begin original Here is an example of how your own code can go broken: =end original 以下はどのように自分のコードが壊れるかの例です: for ( 1..3 ){ $\ = "\r\n"; nasty_break(); print "$_"; } =begin original sub nasty_break { $\ = "\f"; # do something with $_ } =end original sub nasty_break { $\ = "\f"; # $_ で何かする } =begin original You probably expect this code to print the equivalent of =end original おそらくこのコードは以下のように表示されることを期待しています: "1\r\n2\r\n3\r\n" =begin original but instead you get: =end original しかし、以下のようになります: "1\f2\f3\f" =begin original Why? Because C modifies C<$\> without localizing it first. The value you set in C is still there when you return. The fix is to add C so the value doesn't leak out of C: =end original なぜでしょう? C は C<$_> をローカル化する前に変更するからです。 C で設定した値は戻ったときにまだそこにあります。 修正するには、C を追加して、値が C の外に 漏れないようにします: local $\ = "\f"; =begin original It's easy to notice the problem in such a short example, but in more complicated code you are looking for trouble if you don't localize changes to the special variables. =end original このような短い例では問題に気付くのは簡単ですが、より複雑なコードでは、 もし特殊変数の変更をローカル化していないと問題を探すことになります。 =over 8 =item $ARGV X<$ARGV> =begin original Contains the name of the current file when reading from C<< <> >>. =end original C<< <> >> から読込みを行なっているとき、その時点のファイル名を示します。 =item @ARGV X<@ARGV> =begin original The array C<@ARGV> contains the command-line arguments intended for the script. C<$#ARGV> is generally the number of arguments minus one, because C<$ARGV[0]> is the first argument, I the program's command name itself. See L for the command name. =end original 配列 C<@ARGV> は、コマンドラインからスクリプトに渡す引数が入れられます。 C<$ARGV[0]> がI<プログラムのコマンド名自身ではなく>、 最初の引数ですから、C<$#ARGV> は一般には、引数の個数 - 1 となります。 コマンド名については、L を参照してください。 =item ARGV X =begin original The special filehandle that iterates over command-line filenames in C<@ARGV>. Usually written as the null filehandle in the angle operator C<< <> >>. Note that currently C only has its magical effect within the C<< <> >> operator; elsewhere it is just a plain filehandle corresponding to the last file opened by C<< <> >>. In particular, passing C<\*ARGV> as a parameter to a function that expects a filehandle may not cause your function to automatically read the contents of all the files in C<@ARGV>. =end original C<@ARGV> にあるコマンドラインで指定されたファイル名に対して反復する 特殊ファイルハンドルです。 通常角かっこ C<< <> >> の中で空ファイルハンドルとして書かれます。 現在のところ、C は C<< <> >> 演算子の中でのみ特別な効果があることに 注意してください; その他の場所では、C<< <> >> で開かれた最後のファイルに 対応する普通のファイルハンドルです。 特に、ファイルハンドルを想定している関数に C<\*ARGV> を引数として渡しても、 関数内で C<@ARGV> にある全てのファイルの内容を自動的に読み込むことには なりません。 =item ARGVOUT X =begin original The special filehandle that points to the currently open output file when doing edit-in-place processing with B<-i>. Useful when you have to do a lot of inserting and don't want to keep modifying C<$_>. See L for the B<-i> switch. =end original B<-i> を使ってその場修正を行っているときに、現在開いている出力ファイルを 示す特殊ファイルハンドルです。 たくさんの挿入をする必要があるときに C<$_> を修正し続けたくない場合に 有用です。 B<-i> オプションについては L を参照してください。 =item Handle->output_field_separator( EXPR ) =item $OUTPUT_FIELD_SEPARATOR =item $OFS =item $, X<$,> X<$OFS> X<$OUTPUT_FIELD_SEPARATOR> =begin original The output field separator for the print operator. If defined, this value is printed between each of print's arguments. Default is C. =end original print 演算子のための出力フィールドセパレータ。 定義されると、この値がそれぞれの print の引数の間に表示されます。 デフォルトは C です。 =begin original Mnemonic: what is printed when there is a "," in your print statement. =end original 記憶法: print 文で "," を書いた場所に印字されるもの。 =item HANDLE->input_line_number( EXPR ) =item $INPUT_LINE_NUMBER =item $NR =item $. X<$.> X<$NR> X<$INPUT_LINE_NUMBER> X =begin original Current line number for the last filehandle accessed. =end original 最後にアクセスされたファイルハンドルの現在の行番号。 =begin original Each filehandle in Perl counts the number of lines that have been read from it. (Depending on the value of C<$/>, Perl's idea of what constitutes a line may not match yours.) When a line is read from a filehandle (via C or C<< <> >>), or when C or C is called on it, C<$.> becomes an alias to the line counter for that filehandle. =end original Perl の各ファイルハンドルは、そこから読み込んだ行数を数えています。 (C<$/> の値に依存して、何が行を構成するかに関する Perl の考えはあなたの 考えと一致しないかもしれません。) 行が(C や C<< <> >> を使って)ファイルハンドルから読み込まれたか、 C や C がファイルハンドルに対して呼び出された場合、 C<$.> はそのファイルハンドルの行カウンタへのエイリアスとなります。 =begin original You can adjust the counter by assigning to C<$.>, but this will not actually move the seek pointer. I will not localize the filehandle's line count>. Instead, it will localize perl's notion of which filehandle C<$.> is currently aliased to. =end original C<$.> へ代入することでカウンタの値を修正できますが、これは実際にシーク ポインタを動かすことはありません。 I をローカル化してもファイルハンドルの行カウンタは ローカル化されません>。 代わりに、現在 C<$.> がどのファイルハンドルへのエイリアスかという情報が ローカル化されます。 =begin original C<$.> is reset when the filehandle is closed, but B when an open filehandle is reopened without an intervening C. For more details, see LO Operators">. Because C<< <> >> never does an explicit close, line numbers increase across C files (but see examples in L). =end original C<$.> はファイルハンドルがクローズされるとリセットされますが、 オープンしているファイルハンドルが C されることなく再オープンされた 場合にはリセット B<されません>。 さらなる詳細については、LO Operators"> を参照してください。 なぜなら、 C<< <> >> は決して明示的なクローズは行わず、行番号は C の ファイル間で通算してカウントされるからです(但し L の例を 参照してください)。 =begin original You can also use C<< HANDLE->input_line_number(EXPR) >> to access the line counter for a given filehandle without having to worry about which handle you last accessed. =end original また、C<< HANDLE->input_line_number(EXPR) >> とすることで、どのハンドルに 最後にアクセスしたかを気にすることなく行カウンタにアクセスできます。 =begin original Mnemonic: many programs use "." to mean the current line number. =end original 記憶法: 多くのプログラムで "." が現在行番号を示すように使われています。 =item HANDLE->input_record_separator( EXPR ) =item $INPUT_RECORD_SEPARATOR =item $RS =item $/ X<$/> X<$RS> X<$INPUT_RECORD_SEPARATOR> =begin original The input record separator, newline by default. This influences Perl's idea of what a "line" is. Works like B's RS variable, including treating empty lines as a terminator if set to the null string (an empty line cannot contain any spaces or tabs). You may set it to a multi-character string to match a multi-character terminator, or to C to read through the end of file. Setting it to C<"\n\n"> means something slightly different than setting to C<"">, if the file contains consecutive empty lines. Setting to C<""> will treat two or more consecutive empty lines as a single empty line. Setting to C<"\n\n"> will blindly assume that the next input character belongs to the next paragraph, even if it's a newline. =end original 入力レコードセパレータで、デフォルトでは改行文字。 これは Perl での「行」とは何か、ということに影響を与えます。 空文字列に設定されると、空行をセパレータとして扱うことを 含めて、B の変数 RS のように働きます (空行はスペースやタブを含んでいてはいけません)。 複数文字の区切文字を示すために、文字列を設定することもできます; また、 ファイルの最後まで読み込むために undef を指定することもできます。 この変数に C<"\n\n"> を設定すると、空行が続く場合において、 C<""> を設定した場合とわずかに違う動作をするようになります。 C<""> を設定した場合には、複数の空行も 1 つの空行であるかのように扱います。 C<"\n\n"> を設定した場合には、単純に次の文字が (たとえ改行文字であっても) 次の段落に含まれるものとして扱います。 =begin original local $/; # enable "slurp" mode local $_ = ; # whole file now here s/\n[ \t]+/ /g; =end original local $/; # 「吸い込み」モードを有効にする local $_ = ; # ファイル全体が入る s/\n[ \t]+/ /g; =begin original Remember: the value of C<$/> is a string, not a regex. B has to be better for something. :-) =end original 注意: C<$/> は文字列であり、正規表現ではありません。 B は何かもっとうまくやらなくてはいけません。:-) =begin original Setting C<$/> to a reference to an integer, scalar containing an integer, or scalar that's convertible to an integer will attempt to read records instead of lines, with the maximum record size being the referenced integer. So this: =end original C<$/> に整数、整数を含むスカラ、整数に変換できるスカラのいずれかへの リファレンスをセットすると、行を読む代わりにレコードを読もうとします; この場合、最大レコードサイズはリファレンス先の整数値となります。 つまり: local $/ = \32768; # or \"32768", or \$var_containing_32768 open my $fh, "<", $myfile or die $!; local $_ = <$fh>; =begin original will read a record of no more than 32768 bytes from FILE. If you're not reading from a record-oriented file (or your OS doesn't have record-oriented files), then you'll likely get a full chunk of data with every read. If a record is larger than the record size you've set, you'll get the record back in pieces. Trying to set the record size to zero or less will cause reading in the (rest of the) whole file. =end original これは FILE から 32768 バイトを超えないようにレコードを読み込みます。 もしレコード指向のファイルを読み込まない場合 (あるいは OS がレコード指向ファイルを持たない場合)、 読み込み毎にデータのチャンク全部を取り込みます。 もしレコードがセットしたレコードサイズより大きい場合、 レコードの部分を取り込みます。 レコードサイズを 0 以下にセットしようとすると、(残りの)ファイル全体を 読み込むことになります。 =begin original On VMS only, record reads bypass PerlIO layers and any associated buffering,so you must not mix record and non-record reads on the same filehandle. Record mode mixes with line mode only when the same buffering layer is in use for both modes. =end original VMS だけでは、レコードは PerlIO 層とそれに関連するバッファリングを迂回して 読み込まれるので、同じファイルハンドルでレコード読み込みと 非レコード読み込みを混ぜてはいけません。 レコードモードは、同じバッファリング層を両方のモードで使う場合にのみ ラインモードと混ざります。 =begin original If you perform a record read on a FILE with an encoding layer such as C<:encoding(latin1)> or C<:utf8>, you may get an invalid string as a result, may leave the FILE positioned between characters in the stream and may not be reading the number of bytes from the underlying file that you specified. This behaviour may change without warning in a future version of perl. =end original C<:encoding(latin1)> や C<:utf8> のようなエンコーディング層を使って FILE からレコード読み込みを実行する場合、結果として不正な文字列を 得ることになったり、FILE がストリーム中の文字の途中の位置になったり、 基となる指定したファイルからバイト数を読み込めなかったりするかも しれません。 この振る舞いは将来のバージョンの perl では警告なしに 変更されるかもしれません。 =begin original See also L. Also see L. =end original L を参照してください。 L も参照してください。 =begin original Mnemonic: / delimits line boundaries when quoting poetry. =end original 記憶法: /は、詩を引用するときに、行の区切りを示します。 =item Handle->output_record_separator( EXPR ) =item $OUTPUT_RECORD_SEPARATOR =item $ORS =item $\ X<$\> X<$ORS> X<$OUTPUT_RECORD_SEPARATOR> =begin original The output record separator for the print operator. If defined, this value is printed after the last of print's arguments. Default is C. =end original print 演算子のための出力レコードセパレータ。 もし定義されていると、print の最後の引数の最後にこの値が表示されます。 デフォルトは C です。 =begin original Mnemonic: you set C<$\> instead of adding "\n" at the end of the print. Also, it's just like C<$/>, but it's what you get "back" from Perl. =end original 記憶法: print の最後に "\n" を付け加える代わりに C<$\> を設定する。 また、C<$/> に似通っているが、Perl から「バック」されるものです。 =item HANDLE->autoflush( EXPR ) =item $OUTPUT_AUTOFLUSH =item $| X<$|> X X X<$OUTPUT_AUTOFLUSH> =begin original If set to nonzero, forces a flush right away and after every write or print on the currently selected output channel. Default is 0 (regardless of whether the channel is really buffered by the system or not; C<$|> tells you only whether you've asked Perl explicitly to flush after each write). STDOUT will typically be line buffered if output is to the terminal and block buffered otherwise. Setting this variable is useful primarily when you are outputting to a pipe or socket, such as when you are running a Perl program under B and want to see the output as it's happening. This has no effect on input buffering. See L for that. See L on how to select the output channel. See also L. =end original 0 以外に設定されると、 その時点で選択されている出力チャネルを 直ちにその場でフラッシュし、 さらに write や print を行なうごとに、強制的にフラッシュします。 デフォルトでは 0 となっています (チャンネルが実際にシステムによってバッファリングされているかどうかは 関知しません。C<$|> は Perl が明示的に毎回書き込みの後に フラッシュするかどうかのみを示します)。 STDOUT は通常では、端末への出力時には行バッファリング、 それ以外ではブロックバッファリングであることに注意してください。 これは、Perl のスクリプトを rsh 配下で実行して、 実行状況を確認したい場合のように、パイプやソケットに出力するときに特に 便利でしょう。 これは入力バッファリングには何の影響も与えません。 出力チャネルの選択方法については L を参照してください。 L も参照してください。 =begin original Mnemonic: when you want your pipes to be piping hot. =end original 記憶法: パイプをホットな状態にしておくために使う。 =back =head3 Variables related to formats (フォーマット関連の変数) =begin original The special variables for formats are a subset of those for filehandles. See L for more information about Perl's formats. =end original フォーマットのための特殊変数はファイルハンドルのための物のサブセットです。 Perl のフォーマットに関するさらなる情報については L を 参照してください。 =over 8 =item $ACCUMULATOR =item $^A X<$^A> X<$ACCUMULATOR> =begin original The current value of the C accumulator for C lines. A format contains C calls that put their result into C<$^A>. After calling its format, C prints out the contents of C<$^A> and empties. So you never really see the contents of C<$^A> unless you call C yourself and then look at it. See L and L. =end original C 行のための、その時点での C アキュムレータの値。 format には、C<$^A> に結果を残す、C 呼び出しが含まれます。 自分のフォーマットを呼び出した後で、 C は C<$^A> の内容を出力してから消去します。 したがって、自分で C を呼び出すのでなければ、 C<$^A> の値が見えることはありません。 L と L を参照してください。 =item HANDLE->format_formfeed(EXPR) =item $FORMAT_FORMFEED =item $^L X<$^L> X<$FORMAT_FORMFEED> =begin original What formats output as a form feed. The default is C<\f>. =end original フォーマット出力で、改ページのために出力されるもの。 デフォルトは C<\f>。 =item HANDLE->format_page_number(EXPR) =item $FORMAT_PAGE_NUMBER =item $% X<$%> X<$FORMAT_PAGE_NUMBER> =begin original The current page number of the currently selected output channel. =end original その時点で選択されている出力チャネルの、その時点でのページ番号。 =begin original Mnemonic: C<%> is page number in B. =end original 記憶法: C<%> は、B でのページ番号です。 =item HANDLE->format_lines_left(EXPR) =item $FORMAT_LINES_LEFT =item $- X<$-> X<$FORMAT_LINES_LEFT> =begin original The number of lines left on the page of the currently selected output channel. =end original その時点で選択されている出力チャネルの、ページに残っている行数。 =begin original Mnemonic: lines_on_page - lines_printed. =end original 記憶法: "ページ行数" - "印字済み行数" =item Handle->format_line_break_characters EXPR =item $FORMAT_LINE_BREAK_CHARACTERS =item $: X<$:> X =begin original The current set of characters after which a string may be broken to fill continuation fields (starting with C<^>) in a format. The default is S<" \n-">, to break on a space, newline, or a hyphen. =end original フォーマットの充填継続フィールド (C<^> で始まるもの) への文字列で行分割を許す 文字集合。 デフォルトは S<" \n-"> で空白、改行、ハイフンの後で行分割が可能です。 =begin original Mnemonic: a "colon" in poetry is a part of a line. =end original 記憶法: 詩では「コロン」は、行の一部。 =item HANDLE->format_lines_per_page(EXPR) =item $FORMAT_LINES_PER_PAGE =item $= X<$=> X<$FORMAT_LINES_PER_PAGE> =begin original The current page length (printable lines) of the currently selected output channel. The default is 60. =end original その時点で選択されている出力チャネルの、その時点でのページ長 (印字可能行数)。 デフォルトは 60 です。 =begin original Mnemonic: = has horizontal lines. =end original 記憶法: = には複数の水平線 (行) が含まれます。 =item HANDLE->format_top_name(EXPR) =item $FORMAT_TOP_NAME =item $^ X<$^> X<$FORMAT_TOP_NAME> =begin original The name of the current top-of-page format for the currently selected output channel. The default is the name of the filehandle with C<_TOP> appended. For example, the default format top name for the C filehandle is C. =end original その時点で選択されている出力チャネルの、その時点でのページ先頭 フォーマット名。 デフォルトは、ファイルハンドル名に _TOP を続けたものです。 例えば、C ファイルハンドルのデフォルトのページ先頭フォーマット名は C です。 =begin original Mnemonic: points to top of page. =end original 記憶法: ページの先頭へのポインタ。 =item HANDLE->format_name(EXPR) =item $FORMAT_NAME =item $~ X<$~> X<$FORMAT_NAME> =begin original The name of the current report format for the currently selected output channel. The default format name is the same as the filehandle name. For example, the default format name for the C filehandle is just C. =end original その時点で選択されている出力チャネルの、その時点でのフォーマット名。 デフォルトは、ファイルハンドル名です。 例えば、C ファイルハンドルのデフォルトフォーマット名は 単に C です。 =begin original Mnemonic: brother to C<$^>. =end original 記憶法: C<$^> の兄弟。 =back =head2 Error Variables X X (エラー変数) =begin original The variables C<$@>, C<$!>, C<$^E>, and C<$?> contain information about different types of error conditions that may appear during execution of a Perl program. The variables are shown ordered by the "distance" between the subsystem which reported the error and the Perl process. They correspond to errors detected by the Perl interpreter, C library, operating system, or an external program, respectively. =end original 変数 C<$@>, C<$!>, C<$^E>, C<$?> は Perl プログラムの実行中に 発生した、異なる種類のエラー情報を保持します。 変数はエラーを報告した副システムと Perl プロセスとの「距離」 の順番に並んでいます。 これらはそれぞれ、Perl インタプリタ、C ライブラリ、 オペレーティングシステム、外部プログラムによって検出された エラーに対応しています。 =begin original To illustrate the differences between these variables, consider the following Perl expression, which uses a single-quoted string. After execution of this statement, perl may have set all four special error variables: =end original これらの変数の違いを示すために、 以下のようなシングルクォートを用いた Perl 式を考えます。 この文の実行後、perl は四つ全ての特殊エラー変数をセットします: eval q{ open my $pipe, "/cdrom/install |" or die $!; my @res = <$pipe>; close $pipe or die "bad pipe: $?, $!"; }; =begin original When perl executes the C expression, it translates the C, C<< >>, and C calls in the C run-time library and thence to the operating system kernel. perl sets C<$!> to the C library's C if one of these calls fails. =end original C 式が実行されたとき、C, C<< >>, C は C ランタイムライブラリの呼び出しに変換され、それからオペレーティング システムコールに変換されます。 C<$!> はこれらの呼び出しのどれかが失敗したとき、 C ライブラリの C の値がセットされます。 =begin original C<$@> is set if the string to be C-ed did not compile (this may happen if C or C were imported with bad prototypes), or if Perl code executed during evaluation Cd. In these cases the value of C<$@> is the compile error, or the argument to C (which will interpolate C<$!> and C<$?>). (See also L, though.) =end original C<$@> は C された文字列がコンパイルされなかったとき (これは C か C が正しくない プロトタイプでインポートされたときに起こり得ます)、 または評価中に実行している Perl コードが C したときにセットされます。 これらの場合には C<$@> の値はコンパイルエラー、または C への引数(これには C<$!> と C<$?> が差し挟まれます)です。 (しかし、L も参照して下さい。) =begin original Under a few operating systems, C<$^E> may contain a more verbose error indicator, such as in this case, "CDROM tray not closed." Systems that do not support extended error messages leave C<$^E> the same as C<$!>. =end original いくつかのオペレーティングシステムでは、C<$^E> により詳細なエラー指示子が 入っているかもしれません; 今回の場合で言えば、 "CDROM tray not closed." などです。 追加のエラーメッセージに対応していないシステムでは、C<$^E> は C<$!> と同じ 値です。 =begin original Finally, C<$?> may be set to non-0 value if the external program F fails. The upper eight bits reflect specific error conditions encountered by the program (the program's C value). The lower eight bits reflect mode of failure, like signal death and core dump information. See L for details. In contrast to C<$!> and C<$^E>, which are set only if error condition is detected, the variable C<$?> is set on each C or pipe C, overwriting the old value. This is more like C<$@>, which on every C is always set on failure and cleared on success. =end original 最後に、C<$?> は外部プログラム F が失敗したときに 非 0 にセットされるかもしれません。 上位の 8 ビットはプログラムが遭遇した特定のエラー状況 (プログラムの C の値)を反映します。 下位の 8 ビットは、シグナルの死亡やコアダンプ情報と言った失敗のモードを 反映します。 詳細については L を参照して下さい。 C<$!> と C<$^E> はエラー状況が検出されたときにのみ設定されますが、 変数 C<$?> は C やパイプの C の度に、前の値を上書きします。 これは、C<$@> が C の実行毎に、エラーならセットされ、 成功ならクリアされるという動作と似ています。 =begin original For more details, see the individual descriptions at C<$@>, C<$!>, C<$^E>, and C<$?>. =end original より詳細については、C<$@>, C<$!>, C<$^E>, C<$?> それぞれの説明を 参照して下さい。 =over 8 =item ${^CHILD_ERROR_NATIVE} X<$^CHILD_ERROR_NATIVE> =begin original The native status returned by the last pipe close, backtick (C<``>) command, successful call to C or C, or from the C operator. On POSIX-like systems this value can be decoded with the WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG and WIFCONTINUED functions provided by the L module. =end original 最後のパイプクローズ、逆クォート (C<``>) コマンド、C と C の成功した呼び出し、C 演算子から返された、 ネイティブなステータスです。 POSIX 風システムでは、この値は L モジュールで提供される WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG, WIFCONTINUED 関数でデコードできます。 =begin original Under VMS this reflects the actual VMS exit status; i.e. it is the same as C<$?> when the pragma C is in effect. =end original VMS ではこれは実際の VMS の終了ステータスを反映します; 言い換えると、これは C プラグマが有効なときの $? と 同じです。 =begin original This variable was added in Perl 5.8.9. =end original この変数は Perl 5.8.9 で追加されました。 =item $EXTENDED_OS_ERROR =item $^E X<$^E> X<$EXTENDED_OS_ERROR> =begin original Error information specific to the current operating system. At the moment, this differs from C<$!> under only VMS, OS/2, and Win32 (and for MacPerl). On all other platforms, C<$^E> is always just the same as C<$!>. =end original 現在のオペレーティングシステムに特化したエラー情報です。 現在のところ、VMS, OS/2, Win32 (と MacPerl) のみで C<$!> と異なる値をもちます。 その他のプラットフォームでは、C<$^E> はいつも C<$!> と同じです。 =begin original Under VMS, C<$^E> provides the VMS status value from the last system error. This is more specific information about the last system error than that provided by C<$!>. This is particularly important when C<$!> is set to B. =end original VMS では、C<$^E> は最後のシステムエラーの VMS ステータス値です。 これは、最後のシステムエラーについて C<$!> で提供されるものより 具体的な情報を示します。 これは特に C<$!> が B にセットされた場合に重要です。 =begin original Under OS/2, C<$^E> is set to the error code of the last call to OS/2 API either via CRT, or directly from perl. =end original OS/2 では、C<$^E> は CRT 経由、または Perl から直接呼び出された 最後の OS/2 API のエラーコードがセットされます。 =begin original Under Win32, C<$^E> always returns the last error information reported by the Win32 call C which describes the last error from within the Win32 API. Most Win32-specific code will report errors via C<$^E>. ANSI C and Unix-like calls set C and so most portable Perl code will report errors via C<$!>. =end original Win32 では、C<$^E> は Win32 API での最後のエラーの内容を返す C Win32 呼び出しで報告される最新のエラー情報を 返します。 ほとんどの Win32 固有のコードはエラーを C<$^E> 経由で返します。 ANSI C と Unix 風の呼び出しは C をセットするので、 ほとんどの移植性のある Perl コードは C<$!> 経由で エラーを報告します。 =begin original Caveats mentioned in the description of C<$!> generally apply to C<$^E>, also. =end original C<$!> の説明で触れた問題点は一般的に C<$^E> にも適用されます。 =begin original This variable was added in Perl 5.003. =end original この変数は Perl 5.003 で追加されました。 =begin original Mnemonic: Extra error explanation. =end original 記憶法: 追加の(Extra)エラーの説明。 =item $EXCEPTIONS_BEING_CAUGHT =item $^S X<$^S> X<$EXCEPTIONS_BEING_CAUGHT> =begin original Current state of the interpreter. =end original 現在のインタプリタの状態を示します。 =begin original $^S State --------- ------------------- undef Parsing module/eval true (1) Executing an eval false (0) Otherwise =end original $^S 状態 --------- ------------------- undef モジュール/eval のパース中 真 (1) eval の実行中 偽 (0) その他 =begin original The first state may happen in C<$SIG{__DIE__}> and C<$SIG{__WARN__}> handlers. =end original 最初の状態は C<$SIG{__DIE__}> と C<$SIG{__WARN__}> のハンドラで起きる 可能性があります。 =begin original This variable was added in Perl 5.004. =end original この変数は Perl 5.004 で追加されました。 =item $WARNING =item $^W X<$^W> X<$WARNING> =begin original The current value of the warning switch, initially true if B<-w> was used, false otherwise, but directly modifiable. =end original 警告スイッチの値で、B<-w> スイッチが使われると内部的に真となり、 そうでない場合は直接変更可能です。 =begin original See also L. =end original L も参照して下さい。 =begin original Mnemonic: related to the B<-w> switch. =end original 記憶法: B<-w> スイッチに関係します。 =item ${^WARNING_BITS} X<${^WARNING_BITS}> =begin original The current set of warning checks enabled by the C pragma. It has the same scoping as the C<$^H> and C<%^H> variables. The exact values are considered internal to the L pragma and may change between versions of Perl. =end original C プラグマで有効にされた、現在の警告チェックの集合です。 C<$^H> および C<%^H> 変数と同じスコープを持ちます。 正確な値は L プラグマの内部の値と考えられ、Perl の バージョンによって変更されるかもしれません。 =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =item $OS_ERROR =item $ERRNO =item $! X<$!> X<$ERRNO> X<$OS_ERROR> =begin original When referenced, C<$!> retrieves the current value of the C C integer variable. If C<$!> is assigned a numerical value, that value is stored in C. When referenced as a string, C<$!> yields the system error string corresponding to C. =end original 参照されると、C<$!> は C の C 整数変数の現在の値を取得します。 C<$!> に数値が代入されると、その値は C に保管されます。 文字列として参照されると、C<$!> は C に対応するシステムエラー 文字列を返します。 =begin original Many system or library calls set C if they fail, to indicate the cause of failure. They usually do B set C to zero if they succeed. This means C, hence C<$!>, is meaningful only I after a B: =end original 多くのシステムやライブラリ呼び出しは、失敗したときに、失敗の理由を示すために C を設定します。 これらは普通は成功したときには C にゼロを設定 B<しません>。 これは、C、C<$!> は、B<失敗> の I<直後> でのみ意味が あるということです: =begin original if (open my $fh, "<", $filename) { # Here $! is meaningless. ... } else { # ONLY here is $! meaningful. ... # Already here $! might be meaningless. } # Since here we might have either success or failure, # $! is meaningless. =end original if (open my $fh, "<", $filename) { # ここで $! は無意味。 ... } else { # ここでだけ $! に意味がある。 ... # ここで既に $! は無意味かもしれません。 } # ここでは成功と失敗の両方の可能性があるので、 # $! は無意味。 =begin original Here, I means that C<$!> may be unrelated to the outcome of the C operator. Assignment to C<$!> is similarly ephemeral. It can be used immediately before invoking the C operator, to set the exit value, or to inspect the system error string corresponding to error I, or to restore C<$!> to a meaningful state. =end original ここで、I<無意味> というのは C<$!> は C 演算子の結果に 関係ないということです。 C<$!> への代入も同様に一時的なものです。 これは、終了値を設定したり、エラー I に対応するシステムエラー文字列を 調べたり、C<$!> を意味のある状態に復元するために、C 演算子を 起動する直前で使えます。 =begin original Mnemonic: What just went bang? =end original 記憶法: 何が bang(!) したか。 =item %OS_ERROR =item %ERRNO =item %! X<%!> X<%OS_ERROR> X<%ERRNO> =begin original Each element of C<%!> has a true value only if C<$!> is set to that value. For example, C<$!{ENOENT}> is true if and only if the current value of C<$!> is C; that is, if the most recent error was "No such file or directory" (or its moral equivalent: not all operating systems give that exact error, and certainly not all languages). To check if a particular key is meaningful on your system, use C; for a list of legal keys, use C. See L for more information, and also see L. =end original C<%!> の各要素は、C<$!> がその値にセットされている場合にのみ真の値を 持ちます。 例えば、C<$!{ENOENT}> は、現在の C<$!> の値が C の場合にのみ 真となります; これは、最近のエラーが "No such file or directory" (あるいは倫理的に等価なもの: 全ての OS が正確に 同じエラーを出すわけではないですし、全ての言語で出るわけでもありません) の 場合です。 あなたのシステムで特定のキーが意味があるかどうかを調べるには、 C を使ってください; 有効なキーのリストを得るには、 C としてください。 さらなる情報に関しては L と C を参照してください。 =begin original This variable was added in Perl 5.005. =end original この変数は Perl 5.005 で追加されました。 =item $CHILD_ERROR =item $? X<$?> X<$CHILD_ERROR> =begin original The status returned by the last pipe close, backtick (C<``>) command, successful call to C or C, or from the C operator. This is just the 16-bit status word returned by the traditional Unix C system call (or else is made up to look like it). Thus, the exit value of the subprocess is really (C<<< $? >> 8 >>>), and C<$? & 127> gives which signal, if any, the process died from, and C<$? & 128> reports whether there was a core dump. =end original 最後に close したパイプ、バッククォート (C<``>) コマンド、 成功した C または waitpid() 呼び出し、C 演算子が返した ステータス。 このステータスワードは伝統的な Unix の C システムコールが返した 16 ビットのステータス(またはそのように見えるもの)です。 従ってサブプロセスの exit 値は、実際には (C<<< $? >> 8 >>>) で、C<$? & 127> は、もしあれば、そのプロセスを止めたシグナルで、 C<$? & 128> はコアダンプがあるかどうかを示します。 =begin original Additionally, if the C variable is supported in C, its value is returned via C<$?> if any C function fails. =end original さらに、C で C 変数に対応している場合は、 C が失敗したときに C<$?> を通して返されます。 =begin original If you have installed a signal handler for C, the value of C<$?> will usually be wrong outside that handler. =end original C のシグナルハンドラを設定した場合、 C<$?> の値は通常ハンドラの外側では正しくない値となります。 =begin original Inside an C subroutine C<$?> contains the value that is going to be given to C. You can modify C<$?> in an C subroutine to change the exit status of your program. For example: =end original C サブルーチンの内側では C<$?> には C に渡されようとしている 値を含みます。 プログラムの終了ステータスを変更するために、C サブルーチン 内で C<$?> を変更できます。 例えば: =begin original END { $? = 1 if $? == 255; # die would make it 255 } =end original END { $? = 1 if $? == 255; # die は 255 } =begin original Under VMS, the pragma C makes C<$?> reflect the actual VMS exit status, instead of the default emulation of POSIX status; see L for details. =end original VMS では、C を指定すると、 C<$?> はPOSIX ステータスをエミュレートしたものではなく、 実際の VMS 終了ステータスを反映します; 詳細は L を 参照してください。 =begin original Mnemonic: similar to B and B. =end original 記憶法: B や B と同様。 =item $EVAL_ERROR =item $@ X<$@> X<$EVAL_ERROR> =begin original The Perl syntax error message from the last C operator. If C<$@> is the null string, the last C parsed and executed correctly (although the operations you invoked may have failed in the normal fashion). =end original 最後の C 操作子による Perl の構文エラーメッセージです。 C<$@> が空文字列であれば、最後の C が正常に 解析され、実行されたことになります (が、実行した演算子が、 通常の意味で失敗しているかもしれません)。 =begin original Warning messages are not collected in this variable. You can, however, set up a routine to process warnings by setting C<$SIG{__WARN__}> as described in L. =end original 警告メッセージはこの変数に入りません。 しかし、L に記述されている C<$SIG{__WARN__}> にセットすることで 警告を処理するルーチンを設定できます。 =begin original Mnemonic: Where was the syntax error "at"? =end original 記憶法: どこで ("at") 構文エラーが起ったか。 =back =head2 Variables related to the interpreter state (インタプリタの状態に関連する変数) =begin original These variables provide information about the current interpreter state. =end original これらの変数は現在のインタプリタの状態に関する情報を提供します。 =over 8 =item $COMPILING =item $^C X<$^C> X<$COMPILING> =begin original The current value of the flag associated with the B<-c> switch. Mainly of use with B<-MO=...> to allow code to alter its behavior when being compiled, such as for example to C at compile time rather than normal, deferred loading. Setting C<$^C = 1> is similar to calling C. =end original B<-c> スイッチに関連付けられた現在の値です。 主に B<-MO=...> と共に用いられ、例えば C を通常の遅延ロードでは なくコンパイル時に実行するといった、コンパイル時の振る舞いを 変えるために用います。 C<$^C = 1> に設定することは C を呼び出すのと似ています。 =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =item $DEBUGGING =item $^D X<$^D> X<$DEBUGGING> =begin original The current value of the debugging flags. May be read or set. Like its command-line equivalent, you can use numeric or symbolic values, eg C<$^D = 10> or C<$^D = "st">. =end original デバッグフラグの現在の値を示します。 読み書き可能です。 コマンドラインによる等価な機能と同様に、数値とシンボル値が使えます (例: C<$^D = 10> または C<$^D = "st">)。 =begin original Mnemonic: value of B<-D> switch. =end original 記憶法: B<-D> スイッチの値。 =item ${^ENCODING} X<${^ENCODING}> =begin original The I to the C object that is used to convert the source code to Unicode. Thanks to this variable your Perl script does not have to be written in UTF-8. Default is I. The direct manipulation of this variable is highly discouraged. =end original ソースコードを Unicode に変換するために使われる C オブジェクトへの I<オブジェクトリファレンス> 。 この変数のおかげで、Perl スクリプトを UTF-8 で書く必要がありません。 デフォルトは I です。 この変数を直接操作することはとても推奨できません。 =begin original This variable was added in Perl 5.8.2. =end original この変数は Perl 5.8.2 で追加されました。 =item ${^GLOBAL_PHASE} X<${^GLOBAL_PHASE}> =begin original The current phase of the perl interpreter. =end original perl インタプリタの現在のフェーズ。 =begin original Possible values are: =end original 取り得る値は: =over 8 =item CONSTRUCT =begin original The C is being constructed via C. This value is mostly there for completeness and for use via the underlying C variable C. It's not really possible for Perl code to be executed unless construction of the interpreter is finished. =end original C は C で構築されます。 この変数はほとんど完全性のためと、基礎となっている C 変数 C 経由での使用のために存在しています。 実際にはインタプリタの構築が完了しない限り Perl コードを 実行することはできません。 =item START =begin original This is the global compile-time. That includes, basically, every C block executed directly or indirectly from during the compile-time of the top-level program. =end original これはコンパイル時にグローバルです。 これは基本的に、直接実行されたり、トップレベルプログラムの コンパイル時の間に間接的に実行される全ての C です。 =begin original This phase is not called "BEGIN" to avoid confusion with C-blocks, as those are executed during compile-time of any compilation unit, not just the top-level program. A new, localised compile-time entered at run-time, for example by constructs as C are not global interpreter phases, and therefore aren't reflected by C<${^GLOBAL_PHASE}>. =end original C ブロックとの混乱を避けるために、このフェーズの名前は "BEGIN" では ありません; これらは単にトップレベルプログラムではなく、任意のコンパイル ユニットのコンパイル中に実行されます。 例えば C のように、実行時に入った 新しいローカル化されたコンパイル時はグローバルなインタプリタフェーズではなく、 従って C<${^GLOBAL_PHASE}> に反映されません。 =item CHECK =begin original Execution of any C blocks. =end original C ブロックの実行。 =item INIT =begin original Similar to "CHECK", but for C-blocks, not C blocks. =end original "CHECK" と似ていますが、C ブロックではなく C ブロック。 =item RUN =begin original The main run-time, i.e. the execution of C. =end original メインの実行; つまり C の実行。 =item END =begin original Execution of any C blocks. =end original C ブロックの実行。 =item DESTRUCT =begin original Global destruction. =end original グローバルなデストラクタ。 =back =begin original Also note that there's no value for UNITCHECK-blocks. That's because those are run for each compilation unit individually, and therefore is not a global interpreter phase. =end original また、UNITCHECK ブロックのための値はないことに注意してください。 なぜなら、これらはコンパイルユニット毎に独立に実行され、従って グローバルなインタプリタフェーズではないからです。 =begin original Not every program has to go through each of the possible phases, but transition from one phase to another can only happen in the order described in the above list. =end original 全てのプログラムが可能な全てのフェーズを通らなければならないわけでは ありませんが、あるフェーズから他のフェーズへの移行は上述の 順でのみ起こります。 =begin original An example of all of the phases Perl code can see: =end original Perl コードの全てのフェーズを見る例です: BEGIN { print "compile-time: ${^GLOBAL_PHASE}\n" } INIT { print "init-time: ${^GLOBAL_PHASE}\n" } CHECK { print "check-time: ${^GLOBAL_PHASE}\n" } { package Print::Phase; sub new { my ($class, $time) = @_; return bless \$time, $class; } sub DESTROY { my $self = shift; print "$$self: ${^GLOBAL_PHASE}\n"; } } print "run-time: ${^GLOBAL_PHASE}\n"; my $runtime = Print::Phase->new( "lexical variables are garbage collected before END" ); END { print "end-time: ${^GLOBAL_PHASE}\n" } our $destruct = Print::Phase->new( "package variables are garbage collected after END" ); =begin original This will print out =end original これは以下のものを出力します: compile-time: START check-time: CHECK init-time: INIT run-time: RUN lexical variables are garbage collected before END: RUN end-time: END package variables are garbage collected after END: DESTRUCT =begin original This variable was added in Perl 5.14.0. =end original この変数は Perl 5.14.0 で追加されました。 =item $^H X<$^H> =begin original WARNING: This variable is strictly for internal use only. Its availability, behavior, and contents are subject to change without notice. =end original 警告: この変数は厳密に内部使用に限定されます。 その可用性、挙動、内容は告知なく変更される可能性があります。 =begin original This variable contains compile-time hints for the Perl interpreter. At the end of compilation of a BLOCK the value of this variable is restored to the value when the interpreter started to compile the BLOCK. =end original この変数には Perl インタプリタのコンパイル時のヒントが入ります。 BLOCK のコンパイル終了時に、この変数の値は インタプリタが BLOCK のコンパイルを開始した時の値に戻されます。 =begin original When perl begins to parse any block construct that provides a lexical scope (e.g., eval body, required file, subroutine body, loop body, or conditional block), the existing value of C<$^H> is saved, but its value is left unchanged. When the compilation of the block is completed, it regains the saved value. Between the points where its value is saved and restored, code that executes within BEGIN blocks is free to change the value of C<$^H>. =end original Perl がレキシカルスコープを持つブロック構造(eval の中身、required された ファイル、サブルーチンの中身、loop の中身、条件付きブロック)の パーズを開始するとき、現在の C<$^H> の値は保存されますが、値は 変更されません。 ブロックのコンパイルが終わると、保存された値が戻されます。 値の保存と回復の間の地点で、BEGIN ブロックの中で実行されるコードは自由に C<$^H> の値を変更できます。 =begin original This behavior provides the semantic of lexical scoping, and is used in, for instance, the C pragma. =end original この振る舞いはレキシカルスコープを持ち、その中で使えます; 例としては C があります。 =begin original The contents should be an integer; different bits of it are used for different pragmatic flags. Here's an example: =end original 内容は整数であるべきです; ビット毎に異なるプラグマフラグとして使われます。 以下は例です: sub add_100 { $^H |= 0x100 } sub foo { BEGIN { add_100() } bar->baz($boon); } =begin original Consider what happens during execution of the BEGIN block. At this point the BEGIN block has already been compiled, but the body of C is still being compiled. The new value of C<$^H> will therefore be visible only while the body of C is being compiled. =end original BEGIN ブロックの実行中に起こることを考えてみます。 この時点で BEGIN ブロックは既にコンパイルされていますが、 C の中身はまだコンパイル中です。 従って C<$^H> の新しい値は C の中身がコンパイル中にのみ 見ることが出来ます。 =begin original Substitution of C block with: =end original C ブロックを以下のように変更すると: BEGIN { require strict; strict->import('vars') } =begin original demonstrates how C is implemented. Here's a conditional version of the same lexical pragma: =end original どのように C が実装されているかがわかります。 以下は同じレキシカルプラグマの条件付き版です: BEGIN { require strict; strict->import('vars') if $condition } =begin original This variable was added in Perl 5.003. =end original この変数は Perl 5.003 で追加されました。 =item %^H X<%^H> =begin original The C<%^H> hash provides the same scoping semantic as C<$^H>. This makes it useful for implementation of lexically scoped pragmas. See L. =end original C<%^H> ハッシュは C<$^H> と同じスコープを持ちます。 これはレキシカルスコープを持つプラグマを実装するのに便利です。 L を参照してください。 =begin original When putting items into C<%^H>, in order to avoid conflicting with other users of the hash there is a convention regarding which keys to use. A module should use only keys that begin with the module's name (the name of its main package) and a "/" character. For example, a module C should use keys such as C. =end original C<%^H> に追加するとき、他のハッシュのユーザーとの衝突を回避するために、 キーの使い方に関する慣習があります。 モジュールはモジュールの名前(主なパッケージの名前)と "/" 文字で始まる キーのみを使うべきです。 例えば、モジュール C は C のようなキーを 使うべきです。 =begin original This variable was added in Perl 5.6. =end original この変数は Perl 5.6 で追加されました。 =item ${^OPEN} X<${^OPEN}> =begin original An internal variable used by PerlIO. A string in two parts, separated by a C<\0> byte, the first part describes the input layers, the second part describes the output layers. =end original PerlIO で使われる内部変数です。 文字列は C<\0> で分割された二つの部分からなり、前半は入力層を、 後半は出力層を示します。 =begin original This variable was added in Perl 5.8.0. =end original この変数は Perl 5.8.0 で追加されました。 =item $PERLDB =item $^P X<$^P> X<$PERLDB> =begin original The internal variable for debugging support. The meanings of the various bits are subject to change, but currently indicate: =end original デバッグ機能のための内部変数です。 それぞれのビットの意味は変わるかもしれませんが、 現在のところは以下の通りです: =over 6 =item 0x01 =begin original Debug subroutine enter/exit. =end original サブルーチンの出入りをデバッグします。 =item 0x02 =begin original Line-by-line debugging. Causes C subroutine to be called for each statement executed. Also causes saving source code lines (like 0x400). =end original 行毎にデバッグします。 各行を実行する毎に C サブルーチンを呼び出します。 さらに、(0x400 のように) ソースコードを保存します。 =item 0x04 =begin original Switch off optimizations. =end original 最適化を行いません。 =item 0x08 =begin original Preserve more data for future interactive inspections. =end original 将来の対話的な検査のためにより多くのデータを保存します。 =item 0x10 =begin original Keep info about source lines on which a subroutine is defined. =end original サブルーチンが定義されたソース行に関する情報を保持します。 =item 0x20 =begin original Start with single-step on. =end original シングルステップ実行で開始します。 =item 0x40 =begin original Use subroutine address instead of name when reporting. =end original 報告時にサブルーチン名でなくサブルーチンのアドレスを使います。 =item 0x80 =begin original Report C as well. =end original C も同様に報告します。 =item 0x100 =begin original Provide informative "file" names for evals based on the place they were compiled. =end original eval に対して、コンパイルされた位置を元にした「ファイル」名を提供します。 =item 0x200 =begin original Provide informative names to anonymous subroutines based on the place they were compiled. =end original 無名サブルーチンに対して、 コンパイルされた位置を基にした参考名を提供します。 =item 0x400 =begin original Save source code lines into C<@{"_<$filename"}>. =end original ソースコードの行数を C<@{"_<$filename"}> に保存します。 =back =begin original Some bits may be relevant at compile-time only, some at run-time only. This is a new mechanism and the details may change. See also L. =end original 一部のビットはコンパイル時にのみまたは実行時にのみ意味があります。 これは新しい機構であり、詳細は変更されるかもしれません。 L も参照してください。 =item ${^TAINT} X<${^TAINT}> =begin original Reflects if taint mode is on or off. 1 for on (the program was run with B<-T>), 0 for off, -1 when only taint warnings are enabled (i.e. with B<-t> or B<-TU>). =end original 汚染検査モードのオン・オフを反映します。 1 はオン(プログラムは B<-T> 付きで実行されている)、0 はオフ、-1 は汚染 警告のみが有効になっている(つまり B<-t> か B<-TU>)ことを意味します。 =begin original This variable is read-only. =end original この変数は読み込み専用です。 =begin original This variable was added in Perl 5.8. =end original この変数は Perl 5.8 で追加されました。 =item ${^UNICODE} X<${^UNICODE}> =begin original Reflects certain Unicode settings of Perl. See L documentation for the C<-C> switch for more information about the possible values. =end original Perl のいくつかの Unicode 設定を反映します。 設定できる値に関するさらなる情報については L の C<-C> オプションを 参照してください。 =begin original This variable is set during Perl startup and is thereafter read-only. =end original この変数は Perl 起動時に設定され、その後は読み込み専用です。 =begin original This variable was added in Perl 5.8.2. =end original この変数は Perl 5.8.2 で追加されました。 =item ${^UTF8CACHE} X<${^UTF8CACHE}> =begin original This variable controls the state of the internal UTF-8 offset caching code. 1 for on (the default), 0 for off, -1 to debug the caching code by checking all its results against linear scans, and panicking on any discrepancy. =end original この変数は内部 UTF-8 オフセットキャッシュコードの状態を制御します。 1 はオン(デフォルト)、0 はオフ、-1 は全ての結果を線形走査と比較して、 矛盾があれば異常終了する、という形でキャッシュコードをデバッグします。 =begin original This variable was added in Perl 5.8.9. =end original この変数は Perl 5.8.9 で追加されました。 =item ${^UTF8LOCALE} X<${^UTF8LOCALE}> =begin original This variable indicates whether a UTF-8 locale was detected by perl at startup. This information is used by perl when it's in adjust-utf8ness-to-locale mode (as when run with the C<-CL> command-line switch); see L for more info on this. =end original この変数は、起動時に perl によって UTF-8 ロケールが検出されたかどうかを 示します。 この情報は(C<-CL> コマンドラインスイッチで起動されることによって) 「utf8 性をロケールに合わせる」モードのときに perl によって使われます; これに関するさらなる情報は L を参照してください。 =begin original This variable was added in Perl 5.8.8. =end original この変数は Perl 5.8.8 で追加されました。 =back =head2 Deprecated and removed variables (非推奨および削除された変数) =begin original Deprecating a variable announces the intent of the perl maintainers to eventually remove the variable from the language. It may still be available despite its status. Using a deprecated variable triggers a warning. =end original 非推奨となった変数は、perl のメンテナが最終的にこの変数を 削除するということを意図して通知されます。 その状態にも関わらず、まだ利用可能です。 非推奨となった変数を使うと警告が出ます。 =begin original Once a variable is removed, its use triggers an error telling you the variable is unsupported. =end original 変数が削除された後で変数を使うと、この変数が非対応となったことを 知らせるエラーが出ます。 =begin original See L for details about error messages. =end original エラーメッセージの詳細については L を参照してください。 =over 8 =item $OFMT =item $# X<$#> X<$OFMT> =begin original C<$#> was a variable that could be used to format printed numbers. After a deprecation cycle, its magic was removed in Perl 5.10 and using it now triggers a warning: C<$# is no longer supported>. =end original C<$#> は、表示番号をフォーマットするために使われていました。 非推奨化の後、このマジックは Perl 5.10 で取り除かれ、警告を 引き起こします: C<$# is no longer supported>. =begin original This is not the sigil you use in front of an array name to get the last index, like C<$#array>. That's still how you get the last index of an array in Perl. The two have nothing to do with each other. =end original これは C<$#array> のように最後のインデックスを得るために配列名の前に付ける 印ではありません。 これは今でも Perl で配列の最後のインデックスを得る方法です。 これら二つには互いに何の関係もありません。 =begin original Deprecated in Perl 5. =end original Perl 5 で非推奨となりました。 =begin original Removed in Perl 5.10. =end original Perl 5.10 で削除されました。 =item $* X<$*> =begin original C<$*> was a variable that you could use to enable multiline matching. After a deprecation cycle, its magic was removed in Perl 5.10. Using it now triggers a warning: C<$* is no longer supported>. You should use the C and C regexp modifiers instead. =end original C<$*> は複数行マッチングを有効にするために使われていた変数です。 非推奨化の後、このマジックは Perl 5.10 で削除されました。 これを使うと警告を引き起こします: C<$* is no longer supported>。 代わりに C と C の正規表現修飾子を使うべきです。 =begin original Deprecated in Perl 5. =end original Perl 5 で非推奨となりました。 =begin original Removed in Perl 5.10. =end original Perl 5.10 で削除されました。 =item $ARRAY_BASE =item $[ X<$[> X<$ARRAY_BASE> =begin original This variable stores the index of the first element in an array, and of the first character in a substring. The default is 0, but you could theoretically set it to 1 to make Perl behave more like B (or Fortran) when subscripting and when evaluating the index() and substr() functions. =end original この変数は配列の最初の要素や、文字列の最初の文字のインデックスを 保管します。 デフォルトは 0 ですが、理論的には、index() 関数や substr() 関数を評価するときに、Perl の動作をより B (や Fortran) に近づけるため、1 に設定することもできます。 =begin original As of release 5 of Perl, assignment to C<$[> is treated as a compiler directive, and cannot influence the behavior of any other file. (That's why you can only assign compile-time constants to it.) Its use is highly discouraged. =end original Perl 5 からは C<$[> への代入は、コンパイラ指示子として扱われ、 他のファイルの動作に影響を与えることがなくなりました。 (これが、コンパイル時定数しか代入できない理由です。) この変数の使用は非推奨です。 =begin original Prior to Perl 5.10, assignment to C<$[> could be seen from outer lexical scopes in the same file, unlike other compile-time directives (such as L). Using local() on it would bind its value strictly to a lexical block. Now it is always lexically scoped. =end original Perl 5.10 より前では、C<$[> は(L のような)その他のコンパイル時 指示子と異なり、同じファイルのレキシカルスコープの外側から見ることが 出来ていました。 これに local() を使うとこの値を厳密にレキシカルスコープの内側に限定します。 今では常にレキシカルスコープを持ちます。 =begin original As of Perl 5.16, it is implemented by the L module. See L for more details on its behaviour. =end original Perl 5.16 から、これは L モジュールで実装されています。 この振る舞いに関するさらなる詳細については L を参照してください。 =begin original Under C, or C, C<$[> no longer has any effect, and always contains 0. Assigning 0 to it is permitted, but any other value will produce an error. =end original C または C の基では、C<$[> は もはや何の効果もなく、常に 0 が入っています。 これに 0 を代入することは許されますが、それ以外の値はエラーを引き起こします。 =begin original Mnemonic: [ begins subscripts. =end original 記憶法: [ は添え字付けの始め。 =begin original Deprecated in Perl 5.12. =end original Perl 5.12 で非推奨となりました。 =item $OLD_PERL_VERSION =item $] X<$]> X<$OLD_PERL_VERSION> =begin original See L for a more modern representation of the Perl version that allows accurate string comparisons. =end original 正確な文字列比較ができる、より近代的な Perl バージョンの表現については L を参照してください。 =begin original The version + patchlevel / 1000 of the Perl interpreter. This variable can be used to determine whether the Perl interpreter executing a script is in the right range of versions: =end original Perl インタプリタの version + patchlevel / 1000 が返されます。 スクリプトの最初で、そのスクリプトを実行しているインタプリタのバージョンが 適切な範囲内にあるかを調べる、といったことができます: warn "No checksumming!\n" if $] < 3.019; =begin original The floating point representation can sometimes lead to inaccurate numeric comparisons. =end original 浮動小数点表現は数値比較が不正確になることがあります。 =begin original See also the documentation of C and C for a convenient way to fail if the running Perl interpreter is too old. =end original 実行する Perl インタプリタが古すぎる場合に終了する便利な方法に ついては C と C のドキュメントも 参照して下さい。 =begin original Mnemonic: Is this version of perl in the right bracket? =end original 記憶法: Perl のバージョンは、正しい範囲 (right bracket) にあるか。 =back =cut =begin meta Translate: 吉村 寿人 (5.000) Update: Kentaro Shirakata (5.6.1-) Status: completed =end meta