argra****@users*****
argra****@users*****
2012年 7月 7日 (土) 04:52:20 JST
Index: docs/perl/5.10.1/perlport.pod diff -u docs/perl/5.10.1/perlport.pod:1.6 docs/perl/5.10.1/perlport.pod:1.7 --- docs/perl/5.10.1/perlport.pod:1.6 Wed Jun 27 01:54:32 2012 +++ docs/perl/5.10.1/perlport.pod Sat Jul 7 04:52:20 2012 @@ -265,10 +265,8 @@ =end original -When dealing with binary files (or text files in binary mode) be sure -to explicitly set $/ to the appropriate value for your file format -before using chomp(). -(TBT) +バイナリファイル (またはバイナリモードでのテキストファイル) を扱うときには、 +chomp() を使う前にファイル形式に適切な値を $/ に明示的に設定してください。 =begin original @@ -282,14 +280,15 @@ =end original -Because of the "text" mode translation, DOSish perls have limitations -in using C<seek> and C<tell> on a file accessed in "text" mode. -Stick to C<seek>-ing to locations you got from C<tell> (and no -others), and you are usually free to use C<seek> and C<tell> even -in "text" mode. Using C<seek> or C<tell> or other file operations -may be non-portable. If you use C<binmode> on a file, however, you -can usually C<seek> and C<tell> with arbitrary values in safety. -(TBT) +「テキスト」モード変換によって、DOS 的な perl は「テキスト」モードで +アクセスするファイルに対する C<seek> と C<tell> の使用に制限があります。 +Stick to C<seek>-ing to locations you got from +C<tell> で得た位置へ C<seek> する(そして他の方法を使わない)ことに +専念することで、「テキスト」モードでも自由に C<seek> と C<tell> を +使えます。 +C<seek> や C<tell> やその他のファイル操作は互換性がないかもしれません。 +しかし、ファイルに対して C<binmode> を使うと、普通は +任意の値を C<seek> と C<tell> に使っても安全です。 =begin original @@ -300,11 +299,11 @@ =end original -A common misconception in socket programming is that C<\n> eq C<\012> -everywhere. When using protocols such as common Internet protocols, -C<\012> and C<\015> are called for specifically, and the values of -the logical C<\n> and C<\r> (carriage return) are not reliable. -(TBT) +ソケットプログラミングでのよくある誤解は、C<\n> はどこでも C<\012> に +等しいということです。 +一般的なインターネットプロトコルのようなプロトコルを使うとき、 +C<\012> と C<\015> は明確に記述されていて、論理的な +C<\n> と C<\r> (復帰) の値は信頼できません。 print SOCKET "Hi there, client!\r\n"; # WRONG print SOCKET "Hi there, client!\015\012"; # RIGHT @@ -317,10 +316,10 @@ =end original -However, using C<\015\012> (or C<\cM\cJ>, or C<\x0D\x0A>) can be tedious -and unsightly, as well as confusing to those maintaining the code. As -such, the Socket module supplies the Right Thing for those who want it. -(TBT) +しかし、C<\015\012> (または C<\cM\cJ> または C<\x0D\x0A>) を使うのは +退屈で見苦しいかもしれませんし、コードの保守に混乱するかもしれません。 +そのようなものとして、Socket モジュールは求められていることに対する +正しいものを供給します。 use Socket qw(:DEFAULT :crlf); print SOCKET "Hi there, client!$CRLF" # RIGHT @@ -333,10 +332,9 @@ =end original -When reading from a socket, remember that the default input record -separator C<$/> is C<\n>, but robust socket code will recognize as -either C<\012> or C<\015\012> as end of line: -(TBT) +ソケットから読み込むとき、デフォルト入力レコード区切り C<$/> は +C<\n> だけれども、堅牢なソケットコードは C<\012> と C<\015\012> の +どちらも行の末尾として認識することを忘れないでください: while (<SOCKET>) { # ... @@ -349,9 +347,9 @@ =end original -Because both CRLF and LF end in LF, the input record separator can -be set to LF and any CR stripped later. Better to write: -(TBT) +CRLF と LF は両方とも LF で終わっているので、入力レコード区切りを +LF に設定して、後から CR を削除できます。 +よりよく書くと: use Socket qw(:DEFAULT :crlf); local($/) = LF; # not needed if $/ is already \012 @@ -986,7 +984,8 @@ convention (all the files and directories have to be unique within one directory if their names are lowercased and truncated to eight characters before the C<.>, if any, and to three characters after the -C<.>, if any). (And do not use C<.>s in directory names.) +C<.>, if any). +(そしてディレクトリ名に C<.> を使いません。) (TBT) =head2 System Interaction @@ -4069,12 +4068,11 @@ =end original -Due to issues with various CPUs, math libraries, compilers, and standards, -results for C<atan2()> may vary depending on any combination of the above. -Perl attempts to conform to the Open Group/IEEE standards for the results -returned from C<atan2()>, but cannot force the issue if the system Perl is -run on does not allow it. (Tru64, HP-UX 10.20) -(TBT) +様々な CPU、数値演算ライブラリ、コンパイラ、標準の問題により、C<atan2()> の +結果は上述の組み合わせに依存して様々に異なります。 +Perl は C<atan2()> から返される結果を Open Group/IEEE 標準に +準拠させようとしますが、システムの Perl がそれを許さないところ +(Tru64, HP-UX 10.20) で動作している場合は問題を強制させることはできません。 =begin original @@ -4326,18 +4324,18 @@ =end original -Emulates UNIX exit() (which considers C<exit 1> to indicate an error) by -mapping the C<1> to SS$_ABORT (C<44>). This behavior may be overridden -with the pragma C<use vmsish 'exit'>. As with the CRTL's exit() -function, C<exit 0> is also mapped to an exit status of SS$_NORMAL -(C<1>); this mapping cannot be overridden. Any other argument to exit() -is used directly as Perl's exit status. On VMS, unless the future -POSIX_EXIT mode is enabled, the exit code should always be a valid -VMS exit code and not a generic number. When the POSIX_EXIT mode is -enabled, a generic number will be encoded in a method compatible with -the C library _POSIX_EXIT macro so that it can be decoded by other -programs, particularly ones written in C, like the GNV package. (VMS) -(TBT) +C<1> を SS$_ABORT (C<44>) にマッピングすることで UNIX の (エラーを示すために +C<exit 1> を使う) exit() をエミュレートします。 +この振る舞いはプラグマ C<use vmsish 'exit'> で上書きされます。 +CRTL の exit() 関数と同様、C<exit 0> は SS$_NORMAL の終了ステータス +(C<1>) にマッピングされます; このマッピングは上書きできません。 +exit() へのその他の引数は直接 Perl の終了ステータスとして使われます。 +VMS では、将来の POSIX_EXIT モードが有効でない限り、終了コードは +常に有効な VMS 終了コードであり、一般的な数値ではないべきです。 +POSIX_EXIT モードが有効なら、一般的な数値は C ライブラリの _POSIX_EXIT と +互換性のあるメソッドにエンコードされるので、その他のプログラム、特に +GNV パッケージのような C で書かれているプログラムでデコードできます。 +(VMS) =item fcntl @@ -4841,13 +4839,14 @@ =end original -C<kill()> doesn't have the semantics of C<raise()>, i.e. it doesn't send -a signal to the identified process like it does on Unix platforms. -Instead C<kill($sig, $pid)> terminates the process identified by $pid, -and makes it exit immediately with exit status $sig. As in Unix, if -$sig is 0 and the specified process exists, it returns true without -actually terminating it. (Win32) -(TBT) +C<kill()> は C<raise()> の動作はありません; つまり、 +Unix プラットフォームで行われるように識別されたプロセスへシグナルを +送りません。 +代わりに C<kill($sig, $pid)> は $pid で識別されるプロセスを終了させ、 +終了コード $sig で直ちに終了させます。 +Unix でのように、$sig が 0 で指定されたプロセスが存在するなら、実際には +終了させずに真を返します。 +(Win32) =begin original @@ -4859,12 +4858,11 @@ =end original -C<kill(-9, $pid)> will terminate the process specified by $pid and -recursively all child processes owned by it. This is different from -the Unix semantics, where the signal will be delivered to all -processes in the same process group as the process specified by -$pid. (Win32) -(TBT) +C<kill(-9, $pid)> は $pid で指定されたプロセスと、そのプロセスが +所有している全ての子プロセスを再帰的に終了させます。 +これは、$pid で指定されたプロセスと同じプロセスグループの全ての +プロセスにシグナルを送信する、という Unix での動作と異なります。 +(Win32) =begin original @@ -4908,12 +4906,11 @@ =end original -Hard links are implemented on Win32 under NTFS only. They are -natively supported on Windows 2000 and later. On Windows NT they -are implemented using the Windows POSIX subsystem support and the -Perl process will need Administrator or Backup Operator privileges -to create hard links. -(TBT) +ハードリンクは NTFS の Win32 にのみ実装されています。 +これは Windows 2000 以降でネイティブに対応しています。 +Windows NT では Windows POSIX サブシステムサポートを使って +実装されていて、Perl プロセスはハードリンクを作るには +Administrator または Backup Operator 権限が必要です。 =begin original @@ -4935,11 +4932,10 @@ =end original -Because Perl currently relies on the native standard C localtime() -function, it is only safe to use times between 0 and (2**31)-1. Times -outside this range may result in unexpected behavior depending on your -operating system's implementation of localtime(). -(TBT) +Perl は現在のところネイティブな標準 C localtime() 関数に依存しているので、 +0 と (2**31)-1 の間でのみ times を使うのが安全です。 +この範囲外の times はオペレーティングシステムの localtime() の実装に依存して +想定外の振る舞いになることがあります。 =item lstat @@ -5292,11 +5288,11 @@ =end original -On Win32 stat() needs to open the file to determine the link count -and update attributes that may have been changed through hard links. -Setting ${^WIN32_SLOPPY_STAT} to a true value speeds up stat() by -not performing this operation. (Win32) -(TBT) +Win32 では stat() は、リンクカウントと、ハードリンクを通して +変更されるかもしれない属性の更新にはファイルを開く必要があります。 +${^WIN32_SLOPPY_STAT} を真の値に設定することで、この操作をしないことで +stat() を高速化します。 +(Win32) =item symlink @@ -5372,15 +5368,16 @@ =end original -As an optimization, may not call the command shell specified in -C<$ENV{PERL5SHELL}>. C<system(1, @args)> spawns an external -process and immediately returns its process designator, without -waiting for it to terminate. Return value may be used subsequently -in C<wait> or C<waitpid>. Failure to spawn() a subprocess is indicated -by setting $? to "255 << 8". C<$?> is set in a way compatible with -Unix (i.e. the exitstatus of the subprocess is obtained by "$? >> 8", -as described in the documentation). (Win32) -(TBT) +最適化として、C<$ENV{PERL5SHELL}> で指定されたコマンドシェルを +呼び出さないかもしれません。 +C<system(1, @args)> は外部プロセスを起動して、その終了を待たず、 +直ちにそのプロセス指定子を返します。 +返り値は引き続く C<wait> や C<waitpid> で使えます。 +サブプロセスの spawn() の失敗は、$? に "255 << 8" を設定することで +示されます。 +C<$?> は Unix と互換性のある方法 (つまり、サブプロセスの終了ステータスは +文書に記述されている通りに "$? >> 8" で得られる) で設定されます。 +(Win32) =begin original @@ -5396,15 +5393,19 @@ =end original -There is no shell to process metacharacters, and the native standard is -to pass a command line terminated by "\n" "\r" or "\0" to the spawned -program. Redirection such as C<< > foo >> is performed (if at all) by -the run time library of the spawned program. C<system> I<list> will call +メタ文字を処理するシェルはなく、ネイティブな標準では +"\n", "\r", "\0" で終端されたコマンドラインを spawn したプログラムに +渡します。 +C<< > foo >> のようなリダイレクトは spawn したプログラムの +ランタイムライブラリによって実行されます。 +C<system> I<list> will call the Unix emulation library's C<exec> emulation, which attempts to provide emulation of the stdin, stdout, stderr in force in the parent, providing the child program uses a compatible version of the emulation library. -I<scalar> will call the native command line direct and no such emulation -of a child Unix program will exists. Mileage B<will> vary. (S<RISC OS>) +I<scalar> はネイティブなコマンドラインを直接呼び出し、子 Unix プログラムの +エミュレーションは存在しません。 +これは状況によって B<異なります>。 +(S<RISC OS>) (TBT) =begin original @@ -5416,11 +5417,11 @@ =end original -Far from being POSIX compliant. Because there may be no underlying -/bin/sh tries to work around the problem by forking and execing the -first token in its argument string. Handles basic redirection -("<" or ">") on its own behalf. (MiNT) -(TBT) +POSIX 準拠からはほど遠いです。 +基礎となる /bin/sh がないかもしれないので、引数文字列の最初のトークンを +fork して実行することで問題を回避しようとします。 +基本的なリダイレクト ("<" や ">") を自身に代わって扱います。 +(MiNT) =begin original @@ -5443,13 +5444,12 @@ =end original -The return value is POSIX-like (shifted up by 8 bits), which only allows -room for a made-up value derived from the severity bits of the native -32-bit condition code (unless overridden by C<use vmsish 'status'>). -If the native condition code is one that has a POSIX value encoded, the -POSIX value will be decoded to extract the expected exit value. -For more details see L<perlvms/$?>. (VMS) -(TBT) +返り値は POSIX 風 (8 ビットシフト) で、(C<use vmsish 'status'> で +上書きされない限り)ネイティブな 32 ビット条件コードの重大度ビットから +作り上げられた値のための場所だけがあります。 +ネイティブな条件コードが POSIX 値をエンコードしたものなら、 +POSIX 値は想定される終了コードを展開するためにデコードされます。 +さらなる詳細については L<perlvms/$?> を参照してください。 =item times @@ -5471,11 +5471,11 @@ =end original -"cumulative" times will be bogus. On anything other than Windows NT -or Windows 2000, "system" time will be bogus, and "user" time is -actually the time returned by the clock() function in the C runtime -library. (Win32) -(TBT) +「累積」時間は偽りかもしれません。 +Windows NT と Windows 2000 以外では、「システム」時間は偽りかもしれず、 +「ユーザ」時間は実際には C ランタイムライブラリの clock() 関数から +かえされた時刻です。 +(Win32) =begin original @@ -5515,11 +5515,11 @@ =end original -If a FILEHANDLE is supplied, it must be writable and opened in append -mode (i.e., use C<<< open(FH, '>>filename') >>> -or C<sysopen(FH,...,O_APPEND|O_RDWR)>. If a filename is supplied, it -should not be held open elsewhere. (Win32) -(TBT) +FILEHANDLE が指定されると、それは書き込み可能で、追記モード +(つまり C<<< open(FH, '>>filename') >>> または +C<sysopen(FH,...,O_APPEND|O_RDWR)> を使っている)でなければなりません。 +ファイル名が指定されると、他で開いていてはいけません。 +(Win32) =item umask