argra****@users*****
argra****@users*****
2011年 5月 22日 (日) 06:13:24 JST
Index: docs/perl/5.10.0/perlopentut.pod diff -u docs/perl/5.10.0/perlopentut.pod:1.10 docs/perl/5.10.0/perlopentut.pod:1.11 --- docs/perl/5.10.0/perlopentut.pod:1.10 Sat Apr 30 21:11:07 2011 +++ docs/perl/5.10.0/perlopentut.pod Sun May 22 06:13:24 2011 @@ -490,15 +490,13 @@ =end original -実際、when it comes to updating a file, unless you're working on -a binary file as in the WTMP case above, you probably don't want to -use this approach for updating. +実際、ファイルを更新するとき、上述の WTMP の場合のようなバイナリファイルに +対して作業をするのでない限り、おそらく更新のためにこの手法を +使いたくないでしょう。 代わりに、Perl の B<-i> フラグが助けになります。 -The following command takes all the C, C++, or yacc source -or header files and changes all their foo's to bar's, leaving -the old version in the original filename with a ".orig" tacked -on the end: -(TBT) +以下のコマンドは C, C++, yacc 全てののソースファイルとヘッダファイルを +取って、その中の全ての foo を bar に変更し、原版は元のファイル名の末尾に +".orig" を付けたファイルに保持します: $ perl -i.orig -pe 's/\bfoo\b/bar/g' *.[Cchy] @@ -823,14 +821,15 @@ =end original -Less common flags that are sometimes available on some operating -systems include C<O_BINARY>, C<O_TEXT>, C<O_SHLOCK>, C<O_EXLOCK>, +オペレーティングシステムによっては、 + C<O_BINARY>, C<O_TEXT>, C<O_SHLOCK>, C<O_EXLOCK>, C<O_DEFER>, C<O_SYNC>, C<O_ASYNC>, C<O_DSYNC>, C<O_RSYNC>, -C<O_NOCTTY>, C<O_NDELAY> and C<O_LARGEFILE>. Consult your open(2) -manpage or its local equivalent for details. (Note: starting from -Perl release 5.6 the C<O_LARGEFILE> flag, if available, is automatically -added to the sysopen() flags because large files are the default.) -(TBT) +C<O_NOCTTY>, C<O_NDELAY>, C<O_LARGEFILE> のような、それほど有名ではない +フラグも利用可能です。 +詳しくは open(2) man ページその等価物を参照してください。 +(注意: Perl リリース 5.6 から、もし利用可能なら、sysopen() のフラグに +自動的に C<O_LARGEFILE> フラグが付きます; 大きなファイルがデフォルトに +なったからです。) =begin original @@ -842,12 +841,12 @@ =end original -Here's how to use C<sysopen> to emulate the simple C<open> calls we had -before. We'll omit the C<|| die $!> checks for clarity, but make sure -you always check the return values in real code. These aren't quite -the same, since C<open> will trim leading and trailing whitespace, -but you'll get the idea. -(TBT) +これは、前述した単純な C<open> をエミュレートするために C<sysopen> を +使う方法です。 +明確化のために C<|| die $!> のチェックは省略しましたが、実際の尾k-どで派 +常に返り値をチェックするようにしてください。 +C<open> は前後の空白を削除するのでこれは全く同じというわけではありませんが、 +想像はできるでしょう。 =begin original @@ -1016,12 +1015,12 @@ =end original -You should seldom use the MASK argument to C<sysopen()>. That takes -away the user's freedom to choose what permission new files will have. -Denying choice is almost always a bad thing. One exception would be for -cases where sensitive or private data is being stored, such as with mail -folders, cookie files, and internal temporary files. -(TBT) +C<sysopen()> に MASK 引数を使うことはほとんどないでしょう。 +これは、新しいファイルにどのパーミッションを与えるかというユーザーの +自由を奪います。 +選択を拒むということは、ほとんど常に悪いことです。 +一つの例外は、メールフォルダ、クッキーファイル、内部用一時ファイルのような、 +微妙な、あるいはプライベートなデータを保管する場合でしょう。 =head1 Obscure Open Tricks @@ -1802,10 +1801,9 @@ =end original -風変わりな I/O システムを持つシステムでは、it turns out that, astonishingly -enough, even unbuffered I/O using C<sysread> and C<syswrite> might do -sneaky data mutilation behind your back. -(TBT) +風変わりな I/O システムを持つシステムでは、驚いたことに、 +C<sysread> や C<syswrite> を使ったバッファリングしない I/O でさえも +背後でこっそりとデータ操作をすることがあります。 while (sysread(WHENCE, $buf, 1024)) { syswrite(WHITHER, $buf, length($buf));