argra****@users*****
argra****@users*****
2012年 6月 10日 (日) 20:27:32 JST
Index: docs/perl/5.10.1/perlport.pod diff -u docs/perl/5.10.1/perlport.pod:1.4 docs/perl/5.10.1/perlport.pod:1.5 --- docs/perl/5.10.1/perlport.pod:1.4 Sat Jun 9 04:00:57 2012 +++ docs/perl/5.10.1/perlport.pod Sun Jun 10 20:27:32 2012 @@ -55,20 +55,18 @@ =end original -There is a tradeoff between taking full advantage of one particular -type of computer and taking advantage of a full range of them. -Naturally, as you broaden your range and become more diverse, the -common factors drop, and you are left with an increasingly smaller -area of common ground in which you can operate to accomplish a -particular task. Thus, when you begin attacking a problem, it is -important to consider under which part of the tradeoff curve you -want to operate. Specifically, you must decide whether it is -important that the task that you are coding have the full generality -of being portable, or whether to just get the job done right now. -This is the hardest choice to be made. The rest is easy, because -Perl provides many choices, whichever way you want to approach your -problem. -(TBT) +ある特定の種類のコンピュータの利点を使うことと、あらゆる範囲の +コンピュータの利点を使うことの間にはトレードオフがあります。 +当然ながら、より範囲を広げてより多様性のある形にすると、共通の要素が +減っていき、特定のタスクを達成するために操作できる共通の地盤が徐々に +小さくなっていきます。 +従って、問題に取りかかるときに、トレードオフのカーブのどの部分を +使うかを考えることは重要です。 +特に、コーディングしようとするタスクが移植性に関して完全な一般性が +重要かどうか、またすぐにジョブを終わらせるかどうかを +決定しなければなりません。 +残りのことは簡単です; なぜならあなたが問題にどのようにアプローチしたいと +しても Perl は多くの選択肢を提供するからです。 =begin original @@ -79,11 +77,11 @@ =end original -Looking at it another way, writing portable code is usually about -willfully limiting your available choices. Naturally, it takes -discipline and sacrifice to do that. The product of portability -and convenience may be a constant. You have been warned. -(TBT) +これを他の方法で見てみると、移植性のあるコードをかくことは通常あなたが +取り得る選択肢を故意に制限します。 +当然ながら、これは規律と犠牲が伴います。 +おそらく移植性と利便性の積は一定です。 +あなたは警告されましたよ。 =begin original @@ -108,11 +106,11 @@ =end original -There is no reason you should not use Perl as a language to glue Unix -tools together, or to prototype a Macintosh application, or to manage the -Windows registry. If it makes no sense to aim for portability for one -reason or another in a given program, then don't bother. -(TBT) +Unix ツールを互いにくっつけたり、Macintosh アプリケーションのプロトタイプを +作ったり、Windows レジストリを操作するための言語として Perl を +使うべきではないという理由はありません。 +プログラムにとって何らかの理由で移植性を目標とすることが無意味なら、 +気にしないでください。 =item Nearly all of Perl already I<is> portable @@ -129,12 +127,14 @@ =end original -Don't be fooled into thinking that it is hard to create portable Perl -code. It isn't. Perl tries its level-best to bridge the gaps between +移植性のある Perl コードを作るのが難しいという考えに騙されないでください。 +そうではありません。 +Perl tries its level-best to bridge the gaps between what's available on different platforms, and all the means available to -use those features. Thus almost all Perl code runs on any machine -without modification. But there are some significant issues in -writing portable code, and this document is entirely about those issues. +use those features. +従って、ほとんど全ての Perl コードは修正なしにどのマシンでも動作します。 +しかし移植性のあるコードを書くにはいくつかの重要な問題があり、この文書は +全体的にそのような問題を扱っています。 (TBT) =back @@ -152,14 +152,15 @@ =end original -Here's the general rule: When you approach a task commonly done -using a whole range of platforms, think about writing portable -code. That way, you don't sacrifice much by way of the implementation +一般的なルールを挙げます: プラットフォーム全体で使われて一般的に +処理されるようなタスクに迫るとき、移植性のあるコードを書くことを +考えてください。 +That way, you don't sacrifice much by way of the implementation choices you can avail yourself of, and at the same time you can give -your users lots of platform choices. On the other hand, when you have to -take advantage of some unique feature of a particular platform, as is -often the case with systems programming (whether for Unix, Windows, -S<Mac OS>, VMS, etc.), consider writing platform-specific code. +your users lots of platform choices. +一方、特定のプラットフォームで固有の機能の利点を使う必要がある場合、 +例えば (Unix, Windows, S<Mac OS>, VMS など専用の) システムプログラムのような +場合、プラットフォーム固有のコードを書くことを考えてください。 (TBT) =begin original @@ -981,8 +982,7 @@ =end original -The I<portable filename characters> as defined by ANSI C are -(TBT) +ANSI C で定義されている、I<移植性のあるファイル名の文字> は: a b c d e f g h i j k l m n o p q r t u v w x y z A B C D E F G H I J K L M N O P Q R T U V W X Y Z @@ -1000,7 +1000,8 @@ =end original -and the "-" shouldn't be the first character. If you want to be +かつ "-" は最初の文字には使えません。 +If you want to be hypercorrect, stay case-insensitive and within the 8.3 naming convention (all the files and directories have to be unique within one directory if their names are lowercased and truncated to eight @@ -1056,9 +1057,8 @@ =end original -Don't open the same file more than once at a time for writing, as some -operating systems put mandatory locks on such files. -(TBT) +同じファイルを同時に 2 回以上書き込みのために開いてはいけません; +一部のオペレーティングシステムはそのようなファイルに排他的ロックを掛けます。 =begin original @@ -1107,9 +1107,8 @@ =end original -This will terminate if the file is undeleteable for some reason -(protected, not there, and so on). -(TBT) +これは (保護されている、存在しない、など) 何らかの理由でファイルが +削除できないときに終了します。 =begin original @@ -1156,9 +1155,9 @@ =end original -On VMS by default, changes to the %ENV hash are persistent after the process -exits. This can cause unintended issues. -(TBT) +VMS のデフォルトでは、%ENV ハッシュへの変更は、プロセスが終了した後に +永続化します。 +これは意図していない問題を引き起こすかもしれません。 =begin original @@ -1166,8 +1165,7 @@ =end original -Don't count on signals or C<%SIG> for anything. -(TBT) +シグナルや C<%SIG> について何も当てにしないで下さい。 =begin original @@ -1176,9 +1174,8 @@ =end original -Don't count on filename globbing. Use C<opendir>, C<readdir>, and -C<closedir> instead. -(TBT) +ファイル名のグロブを当てにしないで下さい。 +代わりに C<opendir>, C<readdir>, C<closedir> を使ってください。 =begin original @@ -1187,9 +1184,8 @@ =end original -Don't count on per-program environment variables, or per-program current -directories. -(TBT) +プログラム単位の環境変数や、プログラム単位のカレントディレクトリを +当てにしないで下さい。 =begin original @@ -1260,9 +1256,8 @@ =end original -To convert $^X to a file pathname, taking account of the requirements -of the various operating system possibilities, say: -(TBT) +$^X をファイルパス名に変換するとき、以下のように、様々な +オペレーティングシステムの可能性の要求を考慮してください: use Config; $thisperl = $^X; @@ -1275,8 +1270,7 @@ =end original -To convert $Config{perlpath} to a file pathname, say: -(TBT) +$Config{perlpath} をファイルのパス名に変換するには、例えば: use Config; $thisperl = $Config{perlpath}; @@ -1312,9 +1306,9 @@ =end original -Don't assume that you can reach outside world through any other port -than 80, or some web proxy. ftp is blocked by many firewalls. -(TBT) +ポート 80 やいくつかのウェブプロキシを以外で、外側の世界に届くことを +仮定しないでください。 +ftp は多くのファイアウォールでブロックされます。 =begin original @@ -1322,8 +1316,8 @@ =end original -Don't assume that you can send email by connecting to the local SMTP port. -(TBT) +ローカル SMTP ポートに接続することで e メールを送信できると +仮定しないでください。 =begin original @@ -1332,9 +1326,10 @@ =end original -Don't assume that you can reach yourself or any node by the name -'localhost'. The same goes for '127.0.0.1'. You will have to try both. -(TBT) +'localhost' という名前で自分自身やその他のノードに届くと +仮定しないでください。 +同じことは '127.0.0.1' にも言えます。 +両方を試す必要があります。 =begin original @@ -1343,9 +1338,8 @@ =end original -Don't assume that the host has only one network card, or that it -can't bind to many virtual IP addresses. -(TBT) +ホストに 1 枚だけネットワークカードがあるとか、複数の仮想 IP アドレスを +割り当てられないと仮定しないでください。 =begin original @@ -1353,8 +1347,7 @@ =end original -Don't assume a particular network device name. -(TBT) +特定のネットワークデバイス名を仮定しないでください。 =begin original @@ -1362,8 +1355,7 @@ =end original -Don't assume a particular set of ioctl()s will work. -(TBT) +特定の ioctl() が動作することを仮定しないでください。 =begin original @@ -1371,8 +1363,7 @@ =end original -Don't assume that you can ping hosts and get replies. -(TBT) +ホストに ping して結果が受け取れると仮定しないでください。 =begin original @@ -1380,8 +1371,7 @@ =end original -Don't assume that any particular port (service) will respond. -(TBT) +特定のポート (サービス) が返答すると仮定しないでください。 =begin original @@ -1463,8 +1453,7 @@ =end original -One especially common bit of Perl code is opening a pipe to B<sendmail>: -(TBT) +特に一般的な Perl コードの一つは B<sendmail> へのパイプを開くことです: open(MAIL, '|/usr/lib/sendmail -t') or die "cannot fork sendmail: $!"; @@ -1501,9 +1490,8 @@ =end original -The Unix System V IPC (C<msg*(), sem*(), shm*()>) is not available -even on all Unix platforms. -(TBT) +Unix System V IPC (C<msg*(), sem*(), shm*()>) は +Unix プラットフォームでさえも全てで利用できるわけではありません。 =begin original @@ -4001,11 +3989,12 @@ =end original -C<-w> only inspects the read-only file attribute (FILE_ATTRIBUTE_READONLY), -which determines whether the directory can be deleted, not whether it can -be written to. Directories always have read and write access unless denied -by discretionary access control lists (DACLs). (S<Win32>) -(TBT) +C<-w> は読み込み専用ファイル属性 (FILE_ATTRIBUTE_READONLY) のみを調べます; +これはディレクトリに書き込めるかどうかではなくディレクトリが +削除できるかどうかを決定します。 +ディレクトリは、随意アクセス制御リスト (DACL) で拒否されない限り、常に +読み書きアクセスできます。 +(S<Win32>) =begin original @@ -4037,10 +4026,10 @@ =end original -C<-s> by name on an open file will return the space reserved on disk, -rather than the current extent. C<-s> on an open filehandle returns the -current size. (S<RISC OS>) -(TBT) +開いているファイルへの名前での C<-s> は、現在のエクステントではなく、 +ディスク上に予約されている空間を返します。 +開いているファイルハンドルへの C<-s> は現在のサイズを返します。 +(S<RISC OS>) =begin original @@ -5379,9 +5368,8 @@ =end original 64 ビット VMS 8.3 で実装されています。 -VMS requires the symbolic link to be in Unix -syntax if it is intended to resolve to a valid path. -(TBT) +VMS は、有効なパスを解決することを目的としているなら、シンボリックリンクが +Unix の文法であることが必要です。 =item syscall @@ -5653,9 +5641,9 @@ =end original -Can only be applied to process handles returned for processes spawned -using C<system(1, ...)> or pseudo processes created with C<fork()>. (Win32) -(TBT) +C<system(1, ...)> を使って作成されたプロセスか、C<fork()> で作成された +疑似プロセスで返されたプロセスハンドルに対してのみ適用できます。 +(Win32) =begin original