argra****@users*****
argra****@users*****
2013年 4月 4日 (木) 20:58:46 JST
Index: docs/perl/5.16.1/perlvar.pod diff -u docs/perl/5.16.1/perlvar.pod:1.3 docs/perl/5.16.1/perlvar.pod:1.4 --- docs/perl/5.16.1/perlvar.pod:1.3 Tue Feb 12 20:43:05 2013 +++ docs/perl/5.16.1/perlvar.pod Thu Apr 4 20:58:45 2013 @@ -198,9 +198,16 @@ デフォルトの入力とパターン検索のスペース。 以下の 2つは同値です: +=begin original + while (<>) {...} # equivalent only in while! while (defined($_ = <>)) {...} +=end original + + while (<>) {...} # while の中でのみ等価! + while (defined($_ = <>)) {...} + /^Subject:/ $_ =~ /^Subject:/ @@ -423,11 +430,10 @@ =end original -The process number of the Perl running this script. Though you I<can> set -this variable, doing so is generally discouraged, although it can be -invaluable for some testing purposes. It will be reset automatically -across C<fork()> calls. -(TBT) +このスクリプトを実行している Perl のプロセス番号です。 +この変数に値を設定することは I<可能> ですが、そうすることは一般的に +非推奨です; しかしこれは一部のテストの目的には計り知れない価値があります。 +C<fork()> 呼び出しがあると自動的にリセットされます。 =begin original @@ -438,11 +444,10 @@ =end 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). -(TBT) +Linux および Debian GNU/kFreeBSD ユーザーに対する注意: Perl v5.16.0 より +前では perl は LinuxThreads を使って Linux システムで POSIX の意味論を +エミュレートしていました; これは POSIX Threads の部分的な実装で、 +Native POSIX Thread Library (NPTL) で置き換えられました。 =begin original @@ -453,11 +458,10 @@ =end original -LinuxThreads is now obsolete on Linux, and and caching C<getpid()> -like this made embedding perl unnecessarily complex (since you'd have -to manually update the value of $$), so now C<$$> and C<getppid()> -will always return the same values as the underlying C library. -(TBT) +LinuxThreads は Linux では古いもので、このように C<getpid()> を +キャッシュすると組み込み perl が不必要に複雑になります ($$ の値を手動で +更新する必要があるからです); それで今では C<$$> と C<getppid()> は常に +基礎となる C ライブラリと同じ値を返します。 =begin original @@ -467,10 +471,9 @@ =end 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. -(TBT) +Debian GNU/kFreeBSD システムは 6.0 リリースまで LinuxThreads を +使っていましたが、その後は POSIX 風の FreeBSD スレッドの意味論に +移行しました。 =begin original @@ -480,10 +483,10 @@ =end original -To see if your system is affected by this discrepancy check if -C<getconf GNU_LIBPTHREAD_VERSION | grep -q NPTL> returns a false -value. NTPL threads preserve the POSIX semantics. -(TBT) +あなたのシステムがこの非一貫性の影響を受けるかどうかを調べるには、 +C<getconf GNU_LIBPTHREAD_VERSION | grep -q NPTL> が偽を返すかどうかを +チェックしてください。 +NTPL スレッドは POSIX の意味論を保存します。 =begin original @@ -809,9 +812,16 @@ 本プロセスの実効 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 @@ -879,8 +889,14 @@ しかし、以下のようにしてはいけません +=begin original + @foo{$a,$b,$c} # a slice--note the @ +=end original + + @foo{$a,$b,$c} # スライス--@ に注意 + =begin original which means @@ -1169,8 +1185,9 @@ =end original -この Perl が構築されたオペレーティングシステムの名前です。 +この Perl が構築されたオペレーティングシステムの名前です; これは設定プロセス中に決定されます。 +例えば L<perlport/PLATFORMS> を参照してください。 =begin original @@ -1218,6 +1235,8 @@ ハッシュ C<%SIG> にはシグナルのためのシグナルハンドラが含まれています。 例えば: +=begin original + sub handler { # 1st argument is signal name my($sig) = @_; print "Caught a SIG$sig--shutting down\n"; @@ -1225,12 +1244,31 @@ 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 @@ -1493,7 +1531,7 @@ C<$^V> はスクリプトを実行している Perl インタプリタのバージョンが 正しい範囲に入っているかを調べるのに使えます。 -例: +例えば: warn "Hashes not randomized!\n" if !$^V or $^V lt v5.8.1 @@ -1506,8 +1544,14 @@ C<$^V> を文字列表現に変換するには C<sprintf()> の 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<use VERSION> and C<require VERSION> @@ -1659,6 +1703,8 @@ あるからです。 C<$^X> の値をパス名に変換するには、以下のコードを使ってください: +=begin original + # Build up a set of file names (not command names). use Config; my $this_perl = $^X; @@ -1667,6 +1713,16 @@ 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 @@ -2037,10 +2093,18 @@ マッチした部分に続く文字列。 例: +=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 @@ -2122,7 +2186,8 @@ 最後に検索されたパターンの最後の括弧にマッチした文字列。 これはいくつかの選択肢の中でどれがマッチするのか -わからないような場合に使うと便利です。たとえば: +わからないような場合に使うと便利です。 +例えば: /Version: (.*)|Revision: (.*)/ && ($rev = $+); @@ -2220,16 +2285,15 @@ =end original -この配列は、現在アクティブな動的スコープで最後に成功した -サブマッチの最後へのオフセットを保持します。 +この配列は、現在アクティブな動的スコープで最後に成功した部分マッチングの +最後へのオフセットを保持します。 C<$+[0]> はマッチ全体の文字列の最後へのオフセットです。 -これはマッチした変数に対して C<pos> 関数を呼び出したときの -返り値と同じです。 +これはマッチした変数に対して C<pos> 関数を呼び出したときの返り値と同じです。 この配列の I<n> 番目の要素は I<n> 番目のサブマッチのオフセットを -保持していますので、C<$+[1]> は過去の C<$1> の終わりのオフセット、 -C<$+[2]> は C<$2> のオフセット、という形になります。 -C<$#+> は最後に成功したマッチでいくつサブグループがあるかを -決定するのに使えます。 +保持しているので、C<$+[1]> は過去の C<$1> の終わりのオフセット、C<$+[2]> は +C<$2> のオフセット、という形になります。 +C<$#+> は最後に成功したマッチでいくつサブグループがあるかを決定するのに +使えます。 C<@-> 変数の例を参照して下さい。 =begin original @@ -2332,8 +2396,8 @@ =end original C<$-[0]> は最後に成功したマッチの先頭のオフセットです。 -C<$-[>I<n>C<]> は I<n> 番目のサブパターンにマッチした部分文字列の -先頭のオフセットです; サブパターンがマッチしなかった場合は undef です。 +C<$-[>I<n>C<]> は I<n> 番目のサブパターンにマッチした部分文字列の先頭の +オフセットです; サブパターンがマッチしなかった場合は undef です。 =begin original @@ -2387,27 +2451,27 @@ =item C<$`> is the same as C<substr($var, 0, $-[0])> -(C<$`> は C<substr($var, 0, $-[0])> と同じです。) +(C<$`> は C<substr($var, 0, $-[0])> と同じです) =item C<$&> is the same as C<substr($var, $-[0], $+[0] - $-[0])> -(C<$&> は C<substr($var, $-[0], $+[0] - $-[0])> と同じです。) +(C<$&> は C<substr($var, $-[0], $+[0] - $-[0])> と同じです) =item C<$'> is the same as C<substr($var, $+[0])> -(C<$'> は C<substr($var, $+[0])> と同じです。) +(C<$'> は C<substr($var, $+[0])> と同じです) =item C<$1> is the same as C<substr($var, $-[1], $+[1] - $-[1])> -(C<$1> は C<substr($var, $-[1], $+[1] - $-[1])> と同じです。) +(C<$1> は C<substr($var, $-[1], $+[1] - $-[1])> と同じです) =item C<$2> is the same as C<substr($var, $-[2], $+[2] - $-[2])> -(C<$2> は C<substr($var, $-[2], $+[2] - $-[2])> と同じです。) +(C<$2> は C<substr($var, $-[2], $+[2] - $-[2])> と同じです) =item C<$3> is the same as C<substr($var, $-[3], $+[3] - $-[3])> -(C<$3> は C<substr $var, $-[3], $+[3] - $-[3])> と同じです。) +(C<$3> は C<substr $var, $-[3], $+[3] - $-[3])> と同じです) =back @@ -2447,7 +2511,7 @@ =end original -以下に例を示します: +以下は例です: if ('1234' =~ /(?<A>1)(?<B>2)(?<A>3)(?<B>4)/) { foreach my $bufname (sort keys %-) { @@ -2560,8 +2624,8 @@ =end original 正規表現デバッグフラグの現在の値です。 -0 をセットすると、C<re 'debug'> モジュールが読み込まれていても -デバッグ出力を行いません。 +0 をセットすると、C<re 'debug'> モジュールが読み込まれていてもデバッグ出力を +行いません。 詳細については L<re> を参照してください。 =begin original @@ -2591,8 +2655,8 @@ どれくらい正規表現の最適化を行い、どれくらいのメモリを利用するかを 制御します。 デフォルトではこの値は 65536 で、512kB の一時キャッシュに相当します。 -この値を大きくすると、大きなものとマッチングするときに速度を重視して -多くのメモリを使います。 +この値を大きくすると、大きなものとマッチングするときに速度を重視して多くの +メモリを使います。 もしできるだけ保守的なメモリ消費をするけれども使うこともある、というように 最適化したい場合は小さい値を設定します; 負の値を設定すると最適化は行わず、 最大限メモリを節約します。 @@ -2624,7 +2688,7 @@ 現在選択されているファイルハンドルに依存する変数の場合には、代わりに C<IO::Handle> オブジェクトに関するオブジェクトメソッドを呼び出して -設定することができますが、通常の組み込み変数よりは効率が落ちます。 +設定できますが、通常の組み込み変数よりは効率が落ちます。 (以下の要約では HANDLE という語を含んでいます。) まず最初に必ず、 @@ -2661,8 +2725,8 @@ =end original それぞれのメソッドは、C<IO::Handle> 属性の昔の値を返します。 -メソッドはそれぞれ EXPR をとることができ、指定した場合には、 -問題の C<IO::Handle> 属性の新しい値を指定することになります。 +メソッドはそれぞれ EXPR をとることができ、指定した場合には、問題の +C<IO::Handle> 属性の新しい値を指定することになります。 指定しない場合には、多くのメソッドでは現在の値に対して何もしませんが、 C<autoflush()> では 1 を指定されたものとします。 @@ -2706,11 +2770,20 @@ その他のモジュールにも影響を与えるかもしれないからです。 これはファイル全体を一度に読み込む正しい方法の一つです: +=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: @@ -2719,11 +2792,20 @@ しかし以下のコードは完全に悪いものです: +=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 @@ -2775,11 +2857,20 @@ 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 @@ -3056,10 +3147,18 @@ C<"\n\n"> を設定した場合には、単純に次の文字が (たとえ改行文字であっても) 次の段落に含まれるものとして扱います。 +=begin original + local $/; # enable "slurp" mode local $_ = <FH>; # whole file now here s/\n[ \t]+/ /g; +=end original + + local $/; # 「吸い込み」モードを有効にする + local $_ = <FH>; # ファイル全体が入る + s/\n[ \t]+/ /g; + =begin original Remember: the value of C<$/> is a string, not a regex. B<awk> has to @@ -3117,11 +3216,11 @@ =end 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. -(TBT) +VMS だけでは、レコードは PerlIO 層とそれに関連するバッファリングを迂回して +読み込まれるので、同じファイルハンドルでレコード読み込みと +非レコード読み込みを混ぜてはいけません。 +レコードモードは、同じバッファリング層を両方のモードで使う場合にのみ +ラインモードと混ざります。 =begin original @@ -3134,13 +3233,13 @@ =end 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. -(TBT) +C<:encoding(latin1)> や C<:utf8> のようなエンコーディング層を使って +FILE からレコード読み込みを実行する場合、結果として不正な文字列を +得ることになったり、FILE がストリーム中の文字の途中の位置になったり、 +基となる指定したファイルからバイト数を読み込めなかったりするかも +しれません。 +この振る舞いは将来のバージョンの perl では警告なしに +変更されるかもしれません。 =begin original @@ -3359,9 +3458,9 @@ =end original -フォーマットの充填継続フィールド (C<^> で始まるもの) への -文字列で行分割を許す文字集合。 -デフォルトは S<" \n-"> で空白、改行、ハイフンの後で行分割が可能となっています。 +フォーマットの充填継続フィールド (C<^> で始まるもの) への文字列で行分割を許す +文字集合。 +デフォルトは S<" \n-"> で空白、改行、ハイフンの後で行分割が可能です。 =begin original @@ -3803,10 +3902,9 @@ =end original C<use warnings> プラグマで有効にされた、現在の警告チェックの集合です。 -It has the same scoping as the C<$^H> and C<%^H> variables. The exact -values are considered internal to the L<warnings> pragma and may change -between versions of Perl. -(TBT) +C<$^H> および C<%^H> 変数と同じスコープを持ちます。 +正確な値は L<warnings> プラグマの内部の値と考えられ、Perl の +バージョンによって変更されるかもしれません。 =begin original @@ -3833,12 +3931,10 @@ =end original -When referenced, C<$!> retrieves the current value -of the C C<errno> integer variable. -If C<$!> is assigned a numerical value, that value is stored in C<errno>. -When referenced as a string, C<$!> yields the system error string -corresponding to C<errno>. -(TBT) +参照されると、C<$!> は C の C<errno> 正数変数の現在の値を取得します。 +C<$!> に数値が代入されると、その値は C<errno> に補完されます。 +文字列として参照されると、C<$!> は C<errno> に対応するシステムエラー +文字列を返します。 =begin original @@ -3849,11 +3945,13 @@ =end original -Many system or library calls set C<errno> if they fail, -to indicate the cause of failure. They usually do B<not> -set C<errno> to zero if they succeed. This means C<errno>, -hence C<$!>, is meaningful only I<immediately> after a B<failure>: -(TBT) +多くのシステムやライブラリ呼び出しは、失敗したときに、失敗の理由を示すために +C<errno> を設定します。 +これらは普通は成功したときには C<errno> にゼロを設定 B<しません>。 +これは、C<errno>、C<$!> は、B<失敗> の I<直後> でのみ意味が +あるということです: + +=begin original if (open my $fh, "<", $filename) { # Here $! is meaningless. @@ -3867,6 +3965,20 @@ # Since here we might have either success or failure, # $! is meaningless. +=end original + + if (open my $fh, "<", $filename) { + # ここで $! は無意味。 + ... + } + else { + # ここでだけ $! に意味がある。 + ... + # ここで既に $! は無意味かもしれません。 + } + # ここでは成功と失敗の両方の可能性があるので、 + # $! は無意味。 + =begin original Here, I<meaningless> means that C<$!> may be unrelated to the outcome @@ -3877,12 +3989,12 @@ =end original -Here, I<meaningless> means that C<$!> may be unrelated to the outcome -of the C<open()> operator. Assignment to C<$!> is similarly ephemeral. -It can be used immediately before invoking the C<die()> operator, -to set the exit value, or to inspect the system error string -corresponding to error I<n>, or to restore C<$!> to a meaningful state. -(TBT) +ここで、I<無意味> というのは C<$!> は C<open()> 演算子の結果に +関係ないということです。 +C<$!> への代入も同様に一時的なものです。 +これは、終了値を設定したり、エラー I<n> に対応するシステムエラー文字列を +調べたり、C<$!> を意味のある状態に復元するために、C<die()> 演算子を +起動する直前で使えます。 =begin original @@ -3992,10 +4104,18 @@ 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<use vmsish 'status'> makes C<$?> reflect the @@ -4061,14 +4181,15 @@ =head2 Variables related to the interpreter state +(インタプリタの状態に関連する変数) + =begin original These variables provide information about the current interpreter state. =end original -These variables provide information about the current interpreter state. -(TBT) +これらの変数は現在のインタプリタの状態に関する情報を提供します。 =over 8 @@ -4509,12 +4630,12 @@ =end 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<Foo::Bar> should use keys such as C<Foo::Bar/baz>. -(TBT) +C<%^H> に追加するとき、他のハッシュのユーザーとの衝突を回避するために、 +キーの使い方に関する慣習があります。 +モジュールはモジュールの名前(主なパッケージの名前)と "/" 文字で始まる +キーのみを使うべきです。 +例えば、モジュール C<Foo::Bar> は C<Foo::Bar/baz> のようなキーを +使うべきです。 =begin original @@ -4691,10 +4812,9 @@ =end 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<perldebguts>. -(TBT) +一部のビットはコンパイル時にのみまたは実行時にのみ意味があります。 +これは新しい機構であり、詳細は変更されるかもしれません。 +L<perldebguts> も参照してください。 =item ${^TAINT} X<${^TAINT}> @@ -4982,9 +5102,8 @@ =end original -As of Perl 5.16, it is implemented by the L<arybase> module. See -L<arybase> for more details on its behaviour. -(TBT) +Perl 5.16 から、これは L<arybase> モジュールで実装されています。 +この振る舞いに関するさらなる詳細については L<arybase> を参照してください。 =begin original @@ -4994,10 +5113,9 @@ =end original -Under C<use v5.16>, or C<no feature "array_base">, C<$[> no longer has any -effect, and always contains 0. Assigning 0 to it is permitted, but any -other value will produce an error. -(TBT) +C<use v5.16> または C<no feature "array_base"> の基では、C<$[> は +もはや何の効果もなく、常に 0 が入っています。 +これに 0 を代入することは許されますが、それ以外の値はエラーを引き起こします。 =begin original @@ -5080,7 +5198,7 @@ Translate: 吉村 寿人 <JAE00****@nifty*****> (5.000) Update: Kentaro Shirakata <argra****@ub32*****> (5.6.1-) -Status: in progress +Status: completed =end meta