Kentaro Shirakata
argra****@users*****
2006年 4月 9日 (日) 03:01:46 JST
Index: docs/perl/5.8.4/perlfaq1.pod diff -u docs/perl/5.8.4/perlfaq1.pod:1.2 docs/perl/5.8.4/perlfaq1.pod:1.3 --- docs/perl/5.8.4/perlfaq1.pod:1.2 Fri Mar 31 00:29:17 2006 +++ docs/perl/5.8.4/perlfaq1.pod Sun Apr 9 03:01:46 2006 @@ -1,12 +1,14 @@ +=encoding euc-jp + =head1 NAME =begin original -perlfaq1 - General Questions About Perl ($Revision: 1.2 $, $Date: 2006/03/30 15:29:17 $) +perlfaq1 - General Questions About Perl ($Revision: 1.3 $, $Date: 2006/04/08 18:01:46 $) =end original -perlfaq1 - Perl に関する一般的な質問 ($Revision: 1.2 $, $Date: 2006/03/30 15:29:17 $) +perlfaq1 - Perl に関する一般的な質問 ($Revision: 1.3 $, $Date: 2006/04/08 18:01:46 $) =head1 DESCRIPTION Index: docs/perl/5.8.4/perlfaq2.pod diff -u docs/perl/5.8.4/perlfaq2.pod:1.2 docs/perl/5.8.4/perlfaq2.pod:1.3 --- docs/perl/5.8.4/perlfaq2.pod:1.2 Fri Mar 31 00:28:29 2006 +++ docs/perl/5.8.4/perlfaq2.pod Sun Apr 9 03:01:46 2006 @@ -1,12 +1,14 @@ +=encoding euc-jp + =head1 NAME =begin original -perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.2 $, $Date: 2006/03/30 15:28:29 $) +perlfaq2 - Obtaining and Learning about Perl ($Revision: 1.3 $, $Date: 2006/04/08 18:01:46 $) =end original -perlfaq2 - Perlの入手と学習 ($Revision: 1.2 $, $Date: 2006/03/30 15:28:29 $) +perlfaq2 - Perlの入手と学習 ($Revision: 1.3 $, $Date: 2006/04/08 18:01:46 $) =head1 DESCRIPTION Index: docs/perl/5.8.4/perlfaq3.pod diff -u docs/perl/5.8.4/perlfaq3.pod:1.1 docs/perl/5.8.4/perlfaq3.pod:1.2 --- docs/perl/5.8.4/perlfaq3.pod:1.1 Mon Apr 3 20:04:10 2006 +++ docs/perl/5.8.4/perlfaq3.pod Sun Apr 9 03:01:46 2006 @@ -1,12 +1,14 @@ +=encoding euc-jp + =head1 NAME =begin original -perlfaq3 - Programming Tools ($Revision: 1.1 $, $Date: 2006/04/03 11:04:10 $) +perlfaq3 - Programming Tools ($Revision: 1.2 $, $Date: 2006/04/08 18:01:46 $) =end original -perlfaq3 - プログラミングツール ($Revision: 1.1 $, $Date: 2006/04/03 11:04:10 $) +perlfaq3 - プログラミングツール ($Revision: 1.2 $, $Date: 2006/04/08 18:01:46 $) =head1 DESCRIPTION Index: docs/perl/5.8.4/perlrun.pod diff -u docs/perl/5.8.4/perlrun.pod:1.1 docs/perl/5.8.4/perlrun.pod:1.2 --- docs/perl/5.8.4/perlrun.pod:1.1 Sat Apr 8 23:44:57 2006 +++ docs/perl/5.8.4/perlrun.pod Sun Apr 9 03:01:46 2006 @@ -1,3 +1,5 @@ +=encoding euc-jp + =head1 NAME =begin original @@ -6,7 +8,7 @@ =end original -perlrun - Perl C^v^ÌN®û@ +perlrun - Perl インタプリタの起動方法 =head1 SYNOPSIS @@ -35,12 +37,12 @@ =end original -Perl vOðÀs·éÊÌû@ÍA¼ÚÀsÅ«é`É·é©A -R}hCÌøƵÄ\[Xt@C̼Oðn·±ÆÅ·B -(ÎbIÈ Perl «à èÜ· -- ÇÌæ¤É·é©ÌÚ×É¢ÄÍ -L<perldebug> ðQƵĺ³¢B) -ÀsÉ ½ÁÄAPerl Íwè³ê½vOðȺɦ·êÅ -TµÜ·: +Perl プログラムを実行する普通の方法は、直接実行できる形にするか、 +コマンドラインの引数としてソースファイルの名前を渡すことです。 +(対話的な Perl 環境もあります -- どのようにするかの詳細については +L<perldebug> を参照して下さい。) +実行にあたって、Perl は指定されたプログラムを以下に示す場所で +探します: =over 4 @@ -52,7 +54,7 @@ =end original -R}hCãÅ -e XCb`Åwè³ê½sB +コマンドライン上で -e スイッチで指定された行。 =item 2. @@ -64,9 +66,9 @@ =end original -R}hCãÅÅÌt@C¼ÆµÄ¦³ê½t@CÌB -(#! L@ðT|[gµÄ¢éVXeÅÍA±Ìæ¤ÉµÄ -C^v^ðÄÑoµÜ·BL<Location of Perl> ðQƵĺ³¢B) +コマンドライン上で最初のファイル名として示されたファイルの中。 +(#! 記法をサポートしているシステムでは、このようにして +インタプリタを呼び出します。L<Location of Perl> を参照して下さい。) =item 3. @@ -78,10 +80,10 @@ =end original -WüÍ©çÃÙÉn³êéB -t@C¼ð¦·øª³¢êÉÌݤܢ«Ü·B -STDIN ©çÇÝÞvOÉøðn·ÉÍA -vO¼ÆµÄ¾¦IÉ "-" ðwèµÈÄÍÈèܹñA +標準入力から暗黙に渡される。 +ファイル名を示す引数が無い場合にのみうまくいきます。 +STDIN から読み込むプログラムに引数を渡すには、 +プログラム名として明示的に "-" を指定しなくてはなりません、 =back @@ -96,13 +98,13 @@ =end original -2 ÔÚA3 ÔÚÌû@ÅÍAB<-x> XCb`ðwèµ½êð¢ÄA -Perl ÍüÍt@CðÅ©çð͵nßÜ·B@B<-x> XCb`ð -wèµ½êÉÍAܸAÅÉ #! Æ "perl" Æ¢¤¶ñð -ÜÞsðTµA»±©çðÍðnßÜ·B -±êÍAå«ÈeLXgÉvOðßñÅAÀs·éæ¤ÈÆ«ÉÖÅ·B -(±ÌêAvOÌIíèÍAg[N C<__END__> ðgÁÄ -¦·Ææ¢Åµå¤B) +2 番目、3 番目の方法では、B<-x> スイッチを指定した場合を除いて、 +Perl は入力ファイルを最初から解析し始めます。 B<-x> スイッチを +指定した場合には、まず、最初に #! と "perl" という文字列を +含む行を探し、そこから解析を始めます。 +これは、大きなテキストにプログラムを埋め込んで、実行するようなときに便利です。 +(この場合、プログラムの終わりは、トークン C<__END__> を使って +示すとよいでしょう。) =begin original @@ -114,12 +116,12 @@ =end original -#! ðÜÞsÌXCb`ªK¸ðͳêéæ¤ÉÈèܵ½B -ÂÜèA#! ÌsÅøªêµ©³êÈ¢A é¢Í -àÁÆ«A#! ÌsªF¯³êȢƢÁ½VXeÅ^pµÄ¢é -êÉàAB<-x> ÅvOÌJnÊuð©Â¯½êð -ÜßAÇÌæ¤É Perl ªN®³ê½©Éæç¸Aêѵ½ -XCb`Ì®ìðúÒÅ«éæ¤ÉÈÁĢܷB +#! を含む行のスイッチが必ず解析されるようになりました。 +つまり、#! の行で引数が一つしか許されない、あるいは +もっと悪く、#! の行が認識されないといったシステムで運用している +場合にも、B<-x> でプログラムの開始位置を見つけた場合を +含め、どのように Perl が起動されたかによらず、一貫した +スイッチの動作を期待できるようになっています。 =begin original @@ -136,19 +138,19 @@ =end original -ðjIÈIy[eBOVXeÌÉÍ -J[lÉæé #! sÌðߪAG[鵃 32 ¶Å -Å¿Øçêĵܤà̪ èÜ·ÌÅA éXCb`ÍR}hCÉ -n³êA éXCb`Ín³êȢƢÁ½±ÆªN±èÜ·B -ӵȢÆA¶ª±©È¢ "-" ¾¯ªn³êéÆ¢Á½±Æà -N±è¾Ü·B -·×ÄÌXCb`ªAmÀÉ 32 ¶«EÌO©ãë©ÌÇ¿ç©É -Èéæ¤Éµ½¢±Æŵå¤B -½ÌXCb`ÍA]ªÉ³êÄàâè èܹñªA -®SÈXCb`ÌãíèÉ "-" ªüÁÄ¢½êÉÍA -vOÌãíèÉAWüÍð Perl É -Às³¹é±ÆÉÈÁĵܢܷB -B<-I> XCb`ªr¼[ÉÈÁ½êÉ਩µÈÊÆÈè¾Ü·B +歴史的なオペレーティングシステムの中には +カーネルによる #! 行の解釈が、エラーなしに 32 文字で +打ち切られてしまうものがありますので、あるスイッチはコマンドラインに +渡され、あるスイッチは渡されないといったことが起こります。 +注意しないと、文字が続かない "-" だけが渡されるといったことも +起こり得ます。 +すべてのスイッチが、確実に 32 文字境界の前か後ろかのどちらかに +なるようにしたいことでしょう。 +多くのスイッチは、余分に処理されても問題ありませんが、 +完全なスイッチの代わりに "-" が入っていた場合には、 +プログラムの代わりに、標準入力を Perl に +実行させることになってしまいます。 +B<-I> スイッチが中途半端になった場合にもおかしな結果となり得ます。 =begin original @@ -159,10 +161,10 @@ =end original -2 ñÀs³êé±ÆÉÓ·éKvÌ éXCb`à èÜ·B -á¦Î B<-l> Æ B<-0> ÌgÝí¹Å·B -(Â\Èç) ¼ûÌXCb`ª 32 ¶«EÌãëÉ¢æ¤É·é©A -B<-0>I<digits> ð C<BEGIN{ $/ = "\0digits"; }> Åu«·¦Ä¾³¢B +2 回実行されることに注意する必要のあるスイッチもあります。 +例えば B<-l> と B<-0> の組み合わせです。 +(可能なら) 両方のスイッチが 32 文字境界の後ろにいくようにするか、 +B<-0>I<digits> を C<BEGIN{ $/ = "\0digits"; }> で置き換えてください。 =begin original @@ -172,8 +174,8 @@ =end original -#! XCb`ÌðÍÍAsàÅ "perl" ª¦³ê½Êu©çnÜèÜ·B -Æèí¯ "-*" Æ "- " Æ¢¤¶ÌÀÑͳ³êÜ·ÌÅA +#! スイッチの解析は、行内で "perl" が示された位置から始まります。 +とりわけ "-*" と "- " という文字の並びは無視されますので、 #!/bin/sh -- # -*- perl -*- -p eval 'exec perl -wS $0 ${1+"$@"}' @@ -185,7 +187,7 @@ =end original -Ìæ¤É¯ÎAPerl É B<-p> XCb`ðn·±ÆªÅ«Ü·B +のように書けば、Perl に B<-p> スイッチを渡すことができます。 =begin original @@ -193,7 +195,7 @@ =end original -½æ¤ÈgbNÍ(ÁÄ¢êÎ) B<env> vOÅàg¦Ü·B +似たようなトリックは(持っていれば) B<env> プログラムでも使えます。 #!/usr/bin/env perl @@ -206,10 +208,10 @@ =end original -ãÌáÍ Perl C^v^ÉÎpXðgÁÄA -[U[Ì PATH ÅÅÉ Á½o[Wðg¢Ü·B -àµÁèÌo[WÌ PerlAá¦Î perl5.005_57 ªg¢½¢ÈçA -#! sÌpXɼÚ׫ŷB +上の例は Perl インタプリタに相対パスを使って、 +ユーザーの PATH で最初にあったバージョンを使います。 +もし特定のバージョンの Perl、例えば perl5.005_57 が使いたいなら、 +#! 行のパスに直接書くべきです。 =begin original @@ -221,12 +223,12 @@ =end original -#! sÉ "perl" Æ¢¤êªÜÜêĢȯêÎA#! ÌãÉwè³ê½ -vOª Perl C^v^ÌãíèÉÀs³êÜ·B -±ê͵ÏíÁĢܷªA#! ªsȦȢ}VðgÁÄ¢éûÉÍ -Løŵå¤B -vOÉεÄgÁÄ¢é SHELL ª F</usr/bin/perl> ¾Æ¾ÁĨ¯ÎA -Perl ª³µ¢C^v^ðN®µÄêé©çÅ·B +#! 行に "perl" という語が含まれていなければ、#! の後に指定された +プログラムが Perl インタプリタの代わりに実行されます。 +これは少し変わっていますが、#! が行なえないマシンを使っている方には +有効でしょう。 +プログラムに対して使っている SHELL が F</usr/bin/perl> だと言っておけば、 +Perl が正しいインタプリタを起動してくれるからです。 =begin original @@ -237,11 +239,11 @@ =end original -vOÌêªÁèÅ«½ÈçAPerl ÍvOSÌðà`®É -RpCµnßÜ·B -RpCG[ª©Â©Á½ÉÍAvOÌÀsÍsÈíêܹñB -(±êÍA\¶G[ª éêÉàArÜÅÀs³êéÂ\«Ì éA -T^IÈVFÌXNvgÆÙÈé_Å·B) +プログラムの場所が特定できたなら、Perl はプログラム全体を内部形式に +コンパイルし始めます。 +コンパイルエラーが見つかった時には、プログラムの実行は行なわれません。 +(これは、構文エラーがある場合にも、途中まで実行される可能性のある、 +典型的なシェルのスクリプトと異なる点です。) =begin original @@ -251,14 +253,14 @@ =end original -vOª\¶Iɳµ¯êÎAÀs³êé±ÆÉÈèÜ·B -vOªAexit() ZqÉà die() ZqÉà½çȢŠ-ÅãÜÅB·éÆA³íÉ®¹µ½±Æ𦷽ßÉAÃÙÌ -C<exit(0)> ªsÈíêÜ·B +プログラムが構文的に正しければ、実行されることになります。 +プログラムが、exit() 演算子にも die() 演算子にも当たらないで +最後まで到達すると、正常に完了したことを示すために、暗黙の +C<exit(0)> が行なわれます。 =head2 #! and quoting on non-Unix systems -(ñ Unix VXeÅÌ #! ÆNH[g) +(非 Unix システムでの #! とクォート) =begin original @@ -266,7 +268,7 @@ =end original -Unix Ì #! ÌeNjbNͼÌVXeÅàV~ [g³êĢܷB +Unix の #! のテクニックは他のシステムでもシミュレートされています。 =over 4 @@ -278,7 +280,7 @@ =end original -C<*.cmd> t@CÌÅÌsÉ +C<*.cmd> ファイルの最初の行に extproc perl -S -your_switches @@ -289,8 +291,8 @@ =end original -Ƣľ³¢ (B<-S> Í cmd.exe Ì `extproc' ̵¢Ì -oOðø«N±µÜ·)B +と書いてください (B<-S> は cmd.exe の `extproc' の扱いの +バグを引き起こします)。 =item MS-DOS @@ -302,10 +304,10 @@ =end original -vOðÀs·éob`t@CðìÁÄA -C<ALTERNATE_SHEBANG> ÅR[h»µÄ¾³¢ -(³çÈéîñÉ¢ÄÍ\[XzzpbP[WÌ F<dosish.h> t@Cð -QƵĺ³¢)B +プログラムを実行するバッチファイルを作って、 +C<ALTERNATE_SHEBANG> でコード化してください +(さらなる情報についてはソース配布パッケージの F<dosish.h> ファイルを +参照して下さい)。 =item Win95/NT @@ -320,13 +322,13 @@ =end original -Win95/NT ÅÌCXg[ɨ¢ÄAActiveState Ì Perl pCXg[[ð -gÁ½êÍAg£q F<.pl> ð Perl C^v^ÉÖAt¯éæ¤ -WXgðÏXµÜ·B -¼Ìû@Å Perl ðCXg[µ½ê(\[X©ç\zµ½êðÜÝÜ·)A -WXgð©ªÅÏX·éKvª èÜ·B -±êÍÀsÂ\È Perl vOÆ Perl Cut@CÆÌ -ᢪÈÈÁĵܤ±ÆÉӵľ³¢B +Win95/NT でのインストールにおいて、ActiveState の Perl 用インストーラーを +使った場合は、拡張子 F<.pl> を Perl インタプリタに関連付けるよう +レジストリを変更します。 +他の方法で Perl をインストールした場合(ソースから構築した場合を含みます)、 +レジストリを自分で変更する必要があります。 +これは実行可能な Perl プログラムと Perl ライブラリファイルとの +違いがなくなってしまうことに注意してください。 =item Macintosh @@ -337,8 +339,8 @@ =end original -Macintosh perl vOÍKØÈ Creator Æ Type ðÁÄ¢éÌÅA -_uNbN·êÎ Perl AvP[VðN®Å«Ü·B +Macintosh perl プログラムは適切な Creator と Type を持っているので、 +ダブルクリックすれば Perl アプリケーションを起動できます。 =item VMS @@ -348,7 +350,7 @@ =end original -vOÌæªÉA +プログラムの先頭に、 $ perl -mysw 'f$env("procedure")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' ! $ exit++ + ++$status != 0 and $exit = $status = undef; @@ -362,11 +364,11 @@ =end original -Ƣľ³¢B±±Å B<-mysw> Í Perl Énµ½¢ -R}hCXCb`Å·B±êÅ C<perl program> ÆµÄ¼Ú -vOðN®Å«Ü·µA -C<@program> ƵÄ( é¢Í F<DCL$PATH> oRÅvO¼ðgÁÄ) -DSL 豫ƵÄN®Å«Ü·B +と書いてください。ここで B<-mysw> は Perl に渡したい +コマンドラインスイッチです。これで C<perl program> として直接 +プログラムを起動できますし、 +C<@program> として(あるいは F<DCL$PATH> 経由でプログラム名を使って) +DSL 手続きとして起動できます。 =begin original @@ -375,8 +377,8 @@ =end original -±ÌÜè¶åÍo¦éÉÍX··¬Ü·ªA -C<perl "-V:startperl"> Æ·êÎ Perl ª±êð\¦µÄêÜ·B +この決まり文句は覚えるには少々長すぎますが、 +C<perl "-V:startperl"> とすれば Perl がこれを表示してくれます。 =back @@ -390,12 +392,12 @@ =end original -ñ Unix VXeÌR}hC^v^ÍNH[gÉÖµÄ -Unix VFÆÙÈÁ½l¦ûðµÄ¢Ü·B -¨g¢ÌR}hC^v^ÌXyVLN^É墀 -(C<*>, C<\>, C<"> ÍêÊIÅ·)A»µÄ -êsÅN®·é½ßÉ(ãq·é B<-e> ðQƵĺ³¢)óâ -XyVLN^ðÛì·éû@É¢ÄwÔKvª éŵå¤B +非 Unix システムのコマンドインタプリタはクォートに関して +Unix シェルと異なった考え方をしています。 +お使いのコマンドインタプリタのスペシャルキャラクタについて +(C<*>, C<\>, C<"> は一般的です)、そして +一行で起動するために(後述する B<-e> を参照して下さい)空白や +スペシャルキャラクタを保護する方法について学ぶ必要があるでしょう。 =begin original @@ -405,10 +407,10 @@ =end original -VXeÉæÁÄÍVONH[gð_uNH[gÉÏX·éKvª - é©àµêܹñBµ©µ Unix â Plan9 ÌVXeÅÍ -I<µÄÍ¢¯Ü¹ñ>B -ܽAPÌÌ % ð %% ÉÏX·éKvª é©àµêܹñB +システムによってはシングルクォートをダブルクォートに変更する必要が +あるかもしれません。しかし Unix や Plan9 のシステムでは +I<してはいけません>。 +また、単体の % を %% に変更する必要があるかもしれません。 =begin original @@ -416,7 +418,7 @@ =end original -á¦Î: +例えば: # Unix perl -e 'print "Hello world\n"' @@ -439,9 +441,9 @@ =end original -âèÍA±êçÍÇêàM«ªÈ¢±ÆÅ·B -±êÍR}hÉ˶µAÇêனȢ©àµêܹñB -B<4DOS> ªR}hVFÈçA¨»çæè殫ܷ: +問題は、これらはどれも信頼性がないことです。 +これはコマンドに依存し、どれも動かないかもしれません。 +B<4DOS> がコマンドシェルなら、おそらくよりよく動きます: perl -e "print <Ctrl-x>"Hello world\n<Ctrl-x>"" @@ -453,9 +455,9 @@ =end original -Windows NT Ì B<CMD.EXE> ÍNà©Ä¢È¢ÔɽÌW Unix @\ª -üèñŢܷªANH[gÌ[ÉÖµÄÍ -hL gðTµÄÝľ³¢B +Windows NT の B<CMD.EXE> は誰も見ていない間に多くの標準 Unix 機能が +入り込んでいますが、クォートのルールに関しては +ドキュメントを探してみてください。 =begin original @@ -466,11 +468,11 @@ =end original -Macintosh ÅÍAgÁÄ¢é«É˶µÜ·B -MacPerl shell â MPW ÍNH[gÖWÌÎÉÖµÄ -©Èè Unix VFÆĢܷB -µ©µAMacintosh Ìñ ASCII ¶ðRg[¶ÆµÄ -©RÉg¤±ÆªÅ«Ü·B +Macintosh では、使っている環境に依存します。 +MacPerl shell や MPW はクォート関係の対応に関して +かなり Unix シェルと似ています。 +しかし、Macintosh の非 ASCII 文字をコントロール文字として +自由に使うことができます。 =begin original @@ -478,12 +480,12 @@ =end original -±ÌÓè̱ÆÉÖ·éêÊIÈðû@Í èܹñB -ÜÁ½®¿á®¿áÅ·B +この辺りのことに関する一般的な解決方法はありません。 +まったくぐちゃぐちゃです。 =head2 Location of Perl -(Perl ÌÊu) +(Perl の位置) =begin original @@ -497,14 +499,14 @@ =end original -½èOÌæ¤É·±¦é©àµêܹñªA -Perl Í[U[ªÈPÉ©Å«éêÉÌÝLpÅ·B -Â\ÈçAF</usr/bin/perl> Æ F</usr/local/bin/perl> ̼ûÉ -ÀÛÌoCiÖÌV{bNNðuÆ¢¤ÌÍæ¢l¦Å·B -൱ꪳÈçAVXeÇÒÍ Perl Æ -t·é[eBeB (ÖÌV{bNN) ðA -T^IÉ[U[Ì PATH Å©t©éfBNg©A -»Ì¼Ì¾ç©ÅÖÈêÉu׫ŷB +当たり前のように聞こえるかもしれませんが、 +Perl はユーザーが簡単に発見できる場合にのみ有用です。 +可能なら、F</usr/bin/perl> と F</usr/local/bin/perl> の両方に +実際のバイナリへのシンボリックリンクを置くというのはよい考えです。 +もしこれが無理なら、システム管理者は Perl と +付随するユーティリティ (へのシンボリックリンク) を、 +典型的にユーザーの PATH で見付かるディレクトリか、 +その他の明らかで便利な場所に置くべきです。 =begin original @@ -514,9 +516,9 @@ =end original -±ÌhL gÅÍAC<#!/usr/bin/perl> ÆvOÌæªÉ¯Î -VXeÌSÄÌ\bhªÀsÅ«éàÌƵĢܷB -ÁèÌo[Wðg¢½¢êÍAÁèÌpXðg¤©: +このドキュメントでは、C<#!/usr/bin/perl> とプログラムの先頭に書けば +システムの全てのメソッドが実行できるものとしています。 +特定のバージョンを使いたい場合は、特定のパスを使うか: #!/usr/local/bin/perl5.00554 @@ -527,14 +529,14 @@ =end original - é¢ÍPÉÅáÀÌo[Wðwèµ½êÍA -ȺÌæ¤ÈsðvOÌæªÉu¢Ä¾³¢: +あるいは単に最低限のバージョンを指定した場合は、 +以下のような行をプログラムの先頭に置いてください: use 5.005_54; =head2 Command Switches -(R}hXCb`) +(コマンドスイッチ) =begin original @@ -543,9 +545,9 @@ =end original -SÄÌWR}hƯlÉA -1 ¶ÌXCb`ÍAɱXCb`ª êÎA»êÆÂÈ°é -±ÆªÅ«Ü·B +全ての標準コマンドと同様に、 +1 文字のスイッチは、次に続くスイッチがあれば、それとつなげる +ことができます。 #!/usr/bin/perl -spi.orig # same as -s -p -i.orig @@ -555,7 +557,7 @@ =end original -XCb`ê: +スイッチ一覧: =over 5 @@ -571,11 +573,11 @@ =end original -üÍR[hZp[^ (C<$/>) ð 8 iÜ½Í 16 iŦµÜ·B -digits ðwèµÈ¢ÆAk¶ªZp[^ÉÈèÜ·B -¼ÌXCb`ðOÉu¢Äà©Ü¢Ü¹ñµAdigits Ì ÆÉ -ÂÈ°Äà©Ü¢Ü¹ñB -½Æ¦ÎAt@C¼ðk¶ÅæØÁÄ\¦Å«é find ª êÎ: +入力レコードセパレータ (C<$/>) を 8 進数または 16 進数で示します。 +digits を指定しないと、ヌル文字がセパレータになります。 +他のスイッチを前に置いてもかまいませんし、digits のあとに +つなげてもかまいません。 +たとえば、ファイル名をヌル文字で区切って表示できる find があれば: find . -name '*.orig' -print0 | perl -n0e unlink @@ -587,9 +589,9 @@ =end original -00 Æ¢¤ÁÊÈlÍAPerl ÉpOt[hÅAt@CðÇܹܷB -0777 Æ¢¤lÍAY·éoCgªÈ¢½ßA -Perl Ét@CSÌðÇܹé±ÆÉÈèÜ·B +00 という特別な値は、Perl にパラグラフモードで、ファイルを読ませます。 +0777 という値は、該当するバイトがないため、 +Perl にファイル全体を読ませることになります。 =begin original @@ -600,10 +602,10 @@ =end original -Unicode ¶ðwèµ½¢êÍA16 iÌtH[}bg C<-0xHHH...> ð -gÁľ³¢B±±Å C<H> Í 16 iƵÄLøȶŷ -(±êÍ C<-x> Å 16 iÌl©çÈéfBNg¼ðwèÅ«È¢ -±ÆðÓ¡µÜ·)B +Unicode 文字を指定したい場合は、16 進数のフォーマット C<-0xHHH...> を +使ってください。ここで C<H> は 16 進数として有効な文字です +(これは C<-x> で 16 進数の数値からなるディレクトリ名を指定できない +ことを意味します)。 =item B<-a> @@ -615,9 +617,9 @@ =end original -B<-n> â B<-p> Æ¢ÁµåÉp¢éÆA©® split [hÉÈèÜ·B -B<-n> â B<-p> ÅìçêéÃÙÌ[vàÌÅ̶ƵÄA -zñ @F ÖÌÃÙÌ split R}hªÀs³êÜ·B +B<-n> や B<-p> といっしょに用いると、自動 split モードになります。 +B<-n> や B<-p> で作られる暗黙のループ内の最初の文として、 +配列 @F への暗黙の split コマンドが実行されます。 perl -ane 'print pop(@F), "\n";' @@ -627,7 +629,7 @@ =end original -ÍȺÌàÌÆ¿Å·B +は以下のものと等価です。 while (<>) { @F = split(' '); @@ -640,7 +642,7 @@ =end original -B<-F> ðgÁÄæضðÏX·é±ÆªÅ«Ü·B +B<-F> を使って区切文字を変更することができます。 =item B<-C [I<number/list>]> @@ -650,7 +652,7 @@ =end original -C<-C>tOÍ Perl Unicode @\Ì¢Â©Ì Unicode ð§äµÜ·B +C<-C>フラグは Perl Unicode 機能のいくつかの Unicode を制御します。 =begin original @@ -660,9 +662,9 @@ =end original -5.8.1 ©çAC<-C> tOÍlܽÍIvV¶ÌXgð -¯é±ÆªoÜ·BwèÂ\ȶÆl¨æÑ»ÌøÊÍȺÌÊèÅ·; -¶ÌXgÍlÌvƯ¶Å·B +5.8.1 から、C<-C> フラグは数値またはオプション文字のリストを +つけることが出来ます。指定可能な文字と数値およびその効果は以下の通りです; +文字のリストは数値の合計と同じです。 I 1 STDIN is assumed to be in UTF-8 O 2 STDOUT will be in UTF-8 @@ -686,9 +688,9 @@ =end original -á¦ÎAC<-COE> Æ C<-C6> ÍÇ¿çà STDOUT Æ STDERR ð UTF-8 »µÜ·B -¯¶¶ðJèÔµÄàç·È¾¯ÅAÁZ³ê½ègOÉÈÁ½èÍ -µÜ¹ñB +例えば、C<-COE> と C<-C6> はどちらも STDOUT と STDERR を UTF-8 化します。 +同じ文字を繰り返しても冗長なだけで、加算されたりトグルになったりは +しません。 =begin original @@ -701,12 +703,12 @@ =end original -C<io> IvVÍø«± open() ( é¢Í¯lÌ I/O ì) ɨ¢Ä -ÃÙIÉ C<:utf8> PerlIO wªKp³êÜ·B -¾¢·¦éÆAüÍXg[ÅÍ UTF-8 ªzè³êAoÍXg[Í -UTF-8 ÅoͳêÜ·B -±êÍPÉftHgÅ èAÊíǨè open() Æ binmode() ž¦IÉ -ÏXÅ«Ü·B +C<io> オプションは引き続く open() (あるいは同様の I/O 操作) において +暗黙的に C<:utf8> PerlIO 層が適用されます。 +言い換えると、入力ストリームでは UTF-8 が想定され、出力ストリームは +UTF-8 で出力されます。 +これは単にデフォルトであり、通常どおり open() と binmode() で明示的に +変更できます。 =begin original @@ -719,13 +721,13 @@ =end original -C<-C> ªPÌÅ(lâIvVXgȵ)N®³êé©A -C<PERL_UNICODE> «Ϫó¶ñ C<""> ÌêAC<-CSDL> Æ -¯¶øÊÆÈèÜ·B¾¢·¦éÆAW I/O ìÆ -ftHgÌ C<open()> wÍP[«Ϫ UTF-8 P[ð -¦µÄ¢éê B<ÌÝ> UTF-8 »³êÜ·B -±ÌUé¢Í Perl 5.8.0 ÅÌ I<ÃÙÌ> (»µÄâèÌ é) UTF-8 É -Ö·éUé¢Æ¯¶Å·B +C<-C> が単体で(数値やオプションリストなし)起動されるか、 +C<PERL_UNICODE> 環境変数が空文字列 C<""> の場合、C<-CSDL> と +同じ効果となります。言い換えると、標準 I/O 操作と +デフォルトの C<open()> 層はロケール環境変数が UTF-8 ロケールを +示している場合 B<のみ> UTF-8 化されます。 +この振る舞いは Perl 5.8.0 での I<暗黙の> (そして問題のある) UTF-8 に +関する振る舞いと同じです。 =begin original @@ -734,8 +736,8 @@ =end original -C<-C0> ( é¢Í C<PERL_UNICODE> É C<"0">) ðwè·éÆ -¾¦IÉãLÌSÄÌ Unicode @\ð³øɵܷB +C<-C0> (あるいは C<PERL_UNICODE> に C<"0">) を指定すると +明示的に上記の全ての Unicode 機能を無効にします。 =begin original @@ -747,11 +749,11 @@ =end original -ÇÝÝêpÌ}WbNÏ C<${^UNICODE}> ɱÌÝèÌl\»ª -½f³êÜ·B±êÍ Perl N®ÉZbg³êéÏÅAÇÝÝêpÅ·B -ÀsÉøÊð¾½¢êÍA3 øÌ open() (L<perlfunc/open> QÆ), -2 øÌ binmode() (L<perlfunc/binmode> QÆ), C<open> vO} -(L<open> QÆ) ðgÁľ³¢B +読み込み専用のマジック変数 C<${^UNICODE}> にこの設定の数値表現が +反映されます。これは Perl 起動時にセットされる変数で、読み込み専用です。 +実行中に効果を得たい場合は、3 引数の open() (L<perlfunc/open> 参照), +2 引数の binmode() (L<perlfunc/binmode> 参照), C<open> プラグマ +(L<open> 参照) を使ってください。 =begin original @@ -762,10 +764,10 @@ =end original -(5.8.1 ÈOÌ Perl ÅÍ C<-C> XCb`Í Win32 êpÌXCb`ÅA -Unicode ÎÌ "Ch¶VXeR[" Win32 API ðg¤½ßÌàÌŵ½B -±Ì@\ÍÀãgíêܹñŵ½ªAR}hCXCb`Í -"Äp" ³êܵ½B) +(5.8.1 以前の Perl では C<-C> スイッチは Win32 専用のスイッチで、 +Unicode 対応の "ワイド文字システムコール" Win32 API を使うためのものでした。 +この機能は事実上使われませんでしたが、コマンドラインスイッチは +"再利用" されました。) =item B<-c> @@ -779,11 +781,11 @@ =end original -Perl ÉXNvgÌ\¶Ì`FbNðsÈí¹AÀs¹¸É -I¹·éæ¤ÉµÜ·B -ÀÛÉÍAC<BEGIN>, C<CHECK>, C<use> ubNÍ I<ÀsµÜ·>B -±êçÍvOÌÀsÌO¤É éàÌÆl¦çêé©çÅ·B -C<INIT> Æ C<END> ubNÍXLbv³êÜ·B +Perl にスクリプトの構文のチェックを行なわせ、実行せずに +終了するようにします。 +実際には、C<BEGIN>, C<CHECK>, C<use> ブロックは I<実行します>。 +これらはプログラムの実行の外側にあるものと考えられるからです。 +C<INIT> と C<END> ブロックはスキップされます。 =item B<-d> @@ -793,8 +795,8 @@ =end original -Perl fobK̺ÅvOðÀsµÜ·B -L<perldebug> ðQƵľ³¢B +Perl デバッガの下でプログラムを実行します。 +L<perldebug> を参照してください。 =item B<-d:>I<foo[=bar,baz]> @@ -810,15 +812,15 @@ =end original -Devel::foo ƵÄCXg[³êé fobOEvt@COE -g[XW [̧äºÅvOðÀsµÜ·B -ÂÜèAB<-d:DProf> Í Devel::DProf vt@CðgÁÄ -vOðÀsµÜ·B -B<-M> tOƤÉg¤ÆAIvVÍ -Devel::foo pbP[WÉn³êADevel::foo::import [`Å -ðß³êÜ·B -IvVðR}æØèÌXgÉ·éÆ«Í C<=> Ì¶Ì -ãɱ¯È¯êÎÈèܹñBL<perldebug> ðQƵĺ³¢B +Devel::foo としてインストールされる デバッグ・プロファイリング・ +トレースモジュールの制御下でプログラムを実行します。 +つまり、B<-d:DProf> は Devel::DProf プロファイラを使って +プログラムを実行します。 +B<-M> フラグと共に使うと、オプションは +Devel::foo パッケージに渡され、Devel::foo::import ルーチンで +解釈されます。 +オプションをコンマ区切りのリストにするときは C<=> の文字の +後に続けなければなりません。L<perldebug> を参照して下さい。 =item B<-D>I<letters> @@ -834,15 +836,15 @@ =end original -fobOtOðÝèµÜ·B -XNvgªÇÌæ¤ÉÀs³êé©ð©éÉÍA -B<-Dtls> ðgÁľ³¢B -(±êÍAfobO@\ð·èñÅ -RpCµ½Æ«É¾¯«Ü·B) -±Ì¼ÉðɧÂlƵÄÍARpC³ê½\¶c[ð\¦·éA -B<-Dx> ª °çêÜ·B -B<-Dr> ÍARpCµ½³K\»ð\¦µÜ·B -oÍ`®É¢ÄÍ L<perldebguts> Éྪ èÜ·B +デバッグフラグを設定します。 +スクリプトがどのように実行されるかを見るには、 +B<-Dtls> を使ってください。 +(これは、デバッグ機能を盛り込んで +コンパイルしたときにだけ働きます。) +この他に役に立つ値としては、コンパイルされた構文ツリーを表示する、 +B<-Dx> があげられます。 +B<-Dr> は、コンパイルした正規表現を表示します。 +出力形式については L<perldebguts> に説明があります。 =begin original @@ -851,8 +853,8 @@ =end original -¶ÌXgÌãíèÉðwè·é±ÆàÅ«Ü· -(½Æ¦ÎAB<-D14> Í B<-Dtls> Æ¿Å·): +文字のリストの代わりに数字を指定することもできます +(たとえば、B<-D14> は B<-Dtls> と等価です): =begin original @@ -882,29 +884,29 @@ =end original - 1 p g[N»Æ\¶ðÍ - 2 s X^bNÌ\¦ - v ƹp³êéÆASÄÌX^bNÌ\¦ - 4 l ReLXg([v)X^bNÌ - 8 t ÀsÌg[X - 16 o \bhÆI[o[[hÌð - 32 c ¶ñ/lÏ· - 64 P vt@COîñA-P ̽ßÌvvZbTR}hA\[Xt@CüÍóÔÌ\¦ - 128 m zu - 256 f tH[}bgÌ - 512 r ³K\»ÌðÍÆÀø - 1024 x \¶g[Ì_v - 2048 u õ`FbN - 4096 (âàÌ: ÈOÍ LEAKTEST ÉgíêÄ¢½) - 8192 H nbV Ì_v -- values() Ì¡æè - 16384 X XNb`pbhÌzu - 32768 D SÁ - 65536 S Xbh¯ú - 131072 T g[N» - 262144 R _v³ê½ÏÌt@XJEgðÜÞ(-DsÌÆ«) - 524288 J DB pbP[WÌÅÍ s,t,P fobOR[hðÀsµÈ¢ - 1048576 v Ú×: ¼ÌtOÆgÝí¹Äg¤ - 2097152 C Rs[ICg + 1 p トークン化と構文解析 + 2 s スタックの表示 + v と併用されると、全てのスタックの表示 + 4 l コンテキスト(ループ)スタックの処理 + 8 t 実行のトレース + 16 o メソッドとオーバーロードの解決 + 32 c 文字列/数値変換 + 64 P プロファイリング情報、-P のためのプリプロセッサコマンド、ソースファイル入力状態の表示 + 128 m メモリ配置 + 256 f フォーマットの処理 + 512 r 正規表現の解析と実効 + 1024 x 構文トリーのダンプ + 2048 u 汚染チェック + 4096 (古いもの: 以前は LEAKTEST に使われていた) + 8192 H ハッシュのダンプ -- values() の横取り + 16384 X スクラッチパッドの配置 + 32768 D 全消去 + 65536 S スレッド同期 + 131072 T トークン化 + 262144 R ダンプされた変数のリファレンスカウントを含む(-Dsのとき) + 524288 J DB パッケージの中では s,t,P デバッグコードを実行しない + 1048576 v 詳細: 他のフラグと組み合わせて使う + 2097152 C コピーオンライト =begin original @@ -916,13 +918,13 @@ =end original -±êçÌSÄÌtOÍ Perl Àst@CðRpC·éÆ«É -B<-DDEBUGGING> ªwè³êÄ¢éKvª èÜ· -(Aµ±êðÏX·éÆ«Í L<Devel::Peek>, L<re> ðQƵľ³¢)B -»¤·é½ßÉǤ·ê΢¢©É¢ÄÍ Perl Ì\[XzzpbP[WÌ -F<INSTALL> t@CðQƵĺ³¢B -±ÌtOÍ C<Configure> ªÅK»/fobKtOðqË½Æ«É -B<-g> IvVÝÅwè·êΩ®IÉZbg³êÜ·B +これらの全てのフラグは Perl 実行ファイルをコンパイルするときに +B<-DDEBUGGING> が指定されている必要があります +(但しこれを変更するときは L<Devel::Peek>, L<re> を参照してください)。 +そうするためにどうすればいいかについては Perl のソース配布パッケージの +F<INSTALL> ファイルを参照して下さい。 +このフラグは C<Configure> が最適化/デバッガフラグを尋ねたときに +B<-g> オプション込みで指定すれば自動的にセットされます。 =begin original @@ -932,9 +934,9 @@ =end original -VFXNvgɨ¯é C<sh -x> Ìæ¤ÉA -PÉ¡ÀsµÄ¢é Perl ÌR[hð\¦µ½¢êÍA -Perl Ì B<-D> XCb`Íg¦Ü¹ñBãíèÉȺÌæ¤ÉµÄ¾³¢: +シェルスクリプトにおける C<sh -x> のように、 +単に今実行している Perl のコードを表示したい場合は、 +Perl の B<-D> スイッチは使えません。代わりに以下のようにしてください: # If you have "env" utility env=PERLDB_OPTS="NonStop=1 AutoTrace=1 frame=2" perl -dS program @@ -951,7 +953,7 @@ =end original -Ú×ÆoG[VÉ¢ÄÍ L<perldebug> ðQƵĺ³¢B +詳細とバリエーションについては L<perldebug> を参照して下さい。 =item B<-e> I<commandline> @@ -964,11 +966,11 @@ =end original -1 sÌvOðwè·éÌÉgpµÜ·B -B<-e> ªwè³êéÆ Perl ÍøÌXg©çÍt@C¼ðTµÜ¹ñB -¡Ì -e R}hÅA¡sÌXNvgð\¬·é±ÆªÅ«Ü·B -ÊíÌvOÅZ~RðuƱëÉÍAZ~Rðg¤±ÆÉ -Cðt¯Ä¾³¢B +1 行のプログラムを指定するのに使用します。 +B<-e> が指定されると Perl は引数のリストからはファイル名を探しません。 +複数の -e コマンドで、複数行のスクリプトを構成することができます。 +通常のプログラムでセミコロンを置くところには、セミコロンを使うことに +気を付けてください。 =item B<-F>I<pattern> @@ -980,9 +982,9 @@ =end original -B<-a> àLøÈÆ«ÉAsplit ðsȤ³K\»ðwèµÜ·B -p^[Í C<//>, C<"">, C<''> ÅÍÞ©A -VONH[gÌÉ«Ü·B +B<-a> も有効なときに、split を行なう正規表現を指定します。 +パターンは C<//>, C<"">, C<''> で囲むか、 +シングルクォートの中に書きます。 =item B<-h> @@ -992,7 +994,7 @@ =end original -IvVÌêð\¦µÜ·B +オプションの一覧を表示します。 =item B<-i>[I<extension>] @@ -1007,12 +1009,12 @@ =end original -C<E<lt>E<gt>> Ì\¶Å³ê½t@Cðu«·¦é½ßÌg£qð -wèµÜ·B -±êÍAüÍt@Cðl[µA³Ì¼OÅoÍt@Cð open µA -print() ¶ÌftHgƵĻÌoÍt@Cð select ·é±ÆÅsȢܷB -extension ªwè³êéÆAÌÌàeÌobNAbvðsȤ -t@C¼Ìg£qƵÄA³Ìt@C¼Ét¯Á¦çêÜ·B +C<E<lt>E<gt>> の構文で処理されたファイルを置き換えるための拡張子を +指定します。 +これは、入力ファイルをリネームし、元の名前で出力ファイルを open し、 +print() 文のデフォルトとしてその出力ファイルを select することで行ないます。 +extension が指定されると、昔の内容のバックアップを行なう +ファイル名の拡張子として、元のファイル名に付け加えられます。 =begin original @@ -1021,8 +1023,8 @@ =end original -extension ªwè³êÈ¢ÆAobNAbvðìç¸A -»ÝÌt@Cªã«³êÜ·B +extension が指定されないと、バックアップを作らず、 +現在のファイルが上書きされます。 =begin original @@ -1034,11 +1036,11 @@ =end original -extension É C<*> ªÜÜêĢȢêA»ÝÌt@C¼ÌöÉ -ÚöqƵÄt¯Á¦çêÜ·B -extension ÉêÂÈãÌ C<*> ̶ª éêA -»ê¼êÌ C<*> Í»ÝÌt@C¼Åu«·¦çêÜ·B -Perl IÉÆAȺÌæ¤ÉÈèÜ·: +extension に C<*> が含まれていない場合、現在のファイル名の末尾に +接尾子として付け加えられます。 +extension に一つ以上の C<*> の文字がある場合、 +それぞれの C<*> は現在のファイル名で置き換えられます。 +Perl 的に書くと、以下のようになります: ($backup = $extension) =~ s/\*/$file_name/g; @@ -1049,8 +1051,8 @@ =end original -ȺÌæ¤É·éÆA(ÚöqÌãíèÉA é¢ÍÚöqÉÁ¦Ä) -obNAbvt@CÉÚªqð¯é±ÆªÅ«Ü·B +以下のようにすると、(接尾子の代わりに、あるいは接尾子に加えて) +バックアップファイルに接頭子をつけることができます。 $ perl -pi'orig_*' -e 's/bar/baz/' fileA # backup to 'orig_fileA' @@ -1061,8 +1063,8 @@ =end original -³Ìt@CÌobNAbvRs[ð(ùÉ é)¼ÌfBNgÉìé±Æà -Å«Ü·: +元のファイルのバックアップコピーを(既にある)他のディレクトリに作ることも +できます: $ perl -pi'old/*.orig' -e 's/bar/baz/' fileA # backup to 'old/fileA.orig' @@ -1072,7 +1074,7 @@ =end original -ȺÌêsXNvgÍSÄ¿Å·: +以下の一行スクリプトは全て等価です: $ perl -pi -e 's/bar/baz/' fileA # overwrite current file $ perl -pi'*' -e 's/bar/baz/' fileA # overwrite current file @@ -1086,7 +1088,7 @@ =end original -VF©çȺÌæ¤ÉN®·éÆ: +シェルから以下のように起動すると: $ perl -p -i.orig -e "s/foo/bar/; ... " @@ -1096,7 +1098,7 @@ =end original -vOÅȺÌæ¤É·éÌƯ¶Å: +プログラムで以下のようにするのと同じで: #!/usr/bin/perl -pi.orig s/foo/bar/; @@ -1107,7 +1109,7 @@ =end original -ȺÆÙÚ¿Å·: +以下とほぼ等価です: #!/usr/bin/perl $extension = '.orig'; @@ -1140,10 +1142,10 @@ =end original -á¤ÌÍAB<-i> Ì`®ªA¢Ât@C¼ªÏíÁ½©ðmé½ßÉA -$ARGV Æ $oldargv ðär·éKvªÈ¢±ÆÅ·B -µ©µÈªçAIð·ét@CnhÆµÄ ARGVOUT ÍgpµÜ·B -[vÌ ÆÍASTDOUT ªftHgÌt@CnhƵÄÄÝè³êÜ·B +違うのは、B<-i> の形式が、いつファイル名が変わったかを知るために、 +$ARGV と $oldargv を比較する必要がないことです。 +しかしながら、選択するファイルハンドルとして ARGVOUT は使用します。 +ループのあとは、STDOUT がデフォルトのファイルハンドルとして再設定されます。 =begin original @@ -1152,9 +1154,9 @@ =end original -ãqÌÊèAPerl ÍobNAbvt@CðÀÛÉoͪÏX³ê½© -Ǥ©ÉÖíç¸ì¬µÜ·B]ÁÄAȺÍt@CðRs[·é -ÏíÁ½û@ÆÈèÜ·: +上述の通り、Perl はバックアップファイルを実際に出力が変更されたか +どうかに関わらず作成します。従って、以下はファイルをコピーする +変わった方法となります: $ perl -p -i'/some/file/path/*' -e 1 file1 file2 file3... or @@ -1168,10 +1170,10 @@ =end original -ÂXÌt@CÌIíèɽ©ðt¯Á¦½¢Æ«âAsÔð -Zbgµ½¢æ¤ÈêÉAÂXÌüÍt@CÌIíèðmé½ßÉA -Ê̳¢ C<eof> ðg¤±ÆªÅ«Ü·B -(L<perlfunc/eof> ÌáðQƵľ³¢B) +個々のファイルの終わりに何かを付け加えたいときや、行番号を +リセットしたいような場合に、個々の入力ファイルの終わりを知るために、 +括弧の無い C<eof> を使うことができます。 +(L<perlfunc/eof> の例を参照してください。) =begin original @@ -1181,9 +1183,9 @@ =end original -^¦çê½t@CÉεÄAPerl ªwè³ê½g£qÅobNAbvt@Cð -ìêÈ¢êA»Ìt@CÍXLbv³êÄ -(ൠêÎ)Ìt@CÉÚÁÄp±µÜ·B +与えられたファイルに対して、Perl が指定された拡張子でバックアップファイルを +作れない場合、そのファイルはスキップされて +(もしあれば)次のファイルに移って継続します。 =begin original @@ -1192,9 +1194,9 @@ =end original -t@CÌp[~bVÆ B<-i> ÉÖ·éc_É¢ÄÍA -L<perlfaq5/Why does Perl let me delete read-only files? Why does -i clobber protected files? Isn't this a bug in Perl?> ð -QƵĺ³¢B +ファイルのパーミッションと B<-i> に関する議論については、 +L<perlfaq5/Why does Perl let me delete read-only files? Why does -i clobber protected files? Isn't this a bug in Perl?> を +参照して下さい。 =begin original @@ -1203,8 +1205,8 @@ =end original -B<-i> ÍAfBNgðìÁ½èAt@CÌg£qðæ袽èÍ -ūܹñB +B<-i> は、ディレクトリを作ったり、ファイルの拡張子を取り除いたりは +できません。 =begin original @@ -1213,9 +1215,9 @@ =end original -Perl Í C<~> ðWJµÜ¹ñB -±êÍobNAbvt@CðȺÌæ¤ÉµÄìélX̽ßÉÍ -梱ÆÅ·B +Perl は C<~> を展開しません。 +これはバックアップファイルを以下のようにして作る人々のためには +よいことです。 $ perl -pi~ -e 's/foo/bar/' file1 file2 file3... @@ -1228,10 +1230,10 @@ =end original -ÅãÉAB<-i> XCb`ÍAR}hCÅt@Cªwè³êÈÄà -ÀsðW°Ü¹ñB±ÌêAobNAbvt@CÍì¬³ê¸ -(à¿ëñA³Ìt@Cªèūܹñ)A -\zÊèASTDIN ©ç STDOUT ɪsíêÜ·B +最後に、B<-i> スイッチは、コマンドラインでファイルが指定されなくても +実行を妨げません。この場合、バックアップファイルは作成されず +(もちろん、元のファイルが決定できません)、 +予想通り、STDIN から STDOUT に処理が行われます。 =item B<-I>I<directory> @@ -1244,10 +1246,10 @@ =end original -B<-I> Åwè³ê½fBNgÍW [ÌõpX(C<@INC>)É -Á¦çêAܽ C vvZbTÉCN[ht@CðT·êð¦µÜ·B -C vvZbTÍ B<-P> ÅN®³êÜ·B -ftHgÅÍ /usr/include Æ /usr/lib/perl ðTµÜ·B +B<-I> で指定されたディレクトリはモジュールの検索パス(C<@INC>)に +加えられ、また C プリプロセッサにインクルードファイルを探す場所を示します。 +C プリプロセッサは B<-P> で起動されます。 +デフォルトでは /usr/include と /usr/lib/perl を探します。 =item B<-l>[I<octnum>] @@ -1263,15 +1265,15 @@ =end original -©®ÌsðsȤæ¤ÉµÜ·B -±êÉÍA2 ÂÌƧµ½@\ª èÜ·B -1 ÂÉÍAB<-n> â B<-p> ðgÁ½Æ«ÉA -©®IÉC<$/>(üÍR[hZp[^)ð chomp µÜ·B -2 ÂßÉ octnum ð C<$\>(oÍR[hZp[^) ÉãüµA -print ¶ÅZp[^ðÇÁÅ«éæ¤ÉµÜ·B -octnum ðwèµÈ©Á½êÉÍA»Ì_Ì C<$/> Ìlð -C<$\> ÉÝèµÜ·B -½Æ¦ÎAsð 80 JÉØèlßéÉÍȺÌæ¤ÉµÜ·: +自動の行末処理を行なうようにします。 +これには、2 つの独立した機能があります。 +1 つには、B<-n> や B<-p> を使ったときに、 +自動的にC<$/>(入力レコードセパレータ)を chomp します。 +2 つめに octnum を C<$\>(出力レコードセパレータ) に代入し、 +print 文でセパレータを追加できるようにします。 +octnum を指定しなかった場合には、その時点の C<$/> の値を +C<$\> に設定します。 +たとえば、行を 80 カラムに切り詰めるには以下のようにします: perl -lpe 'substr($_, 80) = ""' @@ -1283,10 +1285,10 @@ =end original -C<$\ = $/> Æ¢¤ãüÍAB<-l> XCb`ª³êéÆ«É -Às³êéÆ«ÉsÈíêÜ·ÌÅAB<-l> XCb`ÌãÉ -B<-0> XCb`ðuæ¤É·êÎAüÍR[hZp[^ðA -oÍR[hZp[^Æá¤æ¤ÉàÅ«Ü·: +C<$\ = $/> という代入は、B<-l> スイッチが処理されるときに +実行されるときに行なわれますので、B<-l> スイッチの後に +B<-0> スイッチを置くようにすれば、入力レコードセパレータを、 +出力レコードセパレータと違うようにもできます: gnufind / -print0 | perl -ln0e 'print "found $_" if -p' @@ -1296,8 +1298,8 @@ =end original -±êÍܸAC<$\> Éüs (C<$/> ÌftHgl) ðÝèµA -»ê©ç C<$/> Ék¶ðÝèµÜ·B +これはまず、C<$\> に改行 (C<$/> のデフォルト値) を設定し、 +それから C<$/> にヌル文字を設定します。 =item B<-m>[B<->]I<module> @@ -1314,8 +1316,8 @@ =end original -B<-m>I<module> ÍvOÌÀsOÉ C<use> I<module> C<();> ð -ÀsµÜ·B +B<-m>I<module> はプログラムの実行前に C<use> I<module> C<();> を +実行します。 =begin original @@ -1325,9 +1327,9 @@ =end original -B<-M>I<module> ÍvOÌÀsOÉ C<use> I<module> C<;> ð -ÀsµÜ·BW [¼ÌãëÉÇÁÌR[hðÁ¦é½ßÉ -NH[gðg¤±ÆàÅ«Ü·BÂÜè C<'-Mmodule qw(foo bar)'> ÈÇÅ·B +B<-M>I<module> はプログラムの実行前に C<use> I<module> C<;> を +実行します。モジュール名の後ろに追加のコードを加えるために +クォートを使うこともできます。つまり C<'-Mmodule qw(foo bar)'> などです。 =begin original @@ -1336,8 +1338,8 @@ =end original -B<-M> Ü½Í B<-m> ÌãÌÅ̶ª_bV (C<->)ÌêA -'use' ÌãíèÉ 'no' ªgíêÜ·B +B<-M> または B<-m> の後の最初の文字がダッシュ(C<->)の場合、 +'use' の代わりに 'no' が使われます。 =begin original @@ -1350,13 +1352,13 @@ =end original -¬³¢gÝÝ̶@IV K[ƵÄA -C<'-Mmodule qw(foo bar)'> ÌãíèÉ -B<-mmodule=foo,bar> Ü½Í B<-Mmodule=foo,bar> ƱƪūܷB -±êÅAC|[g·éV{ÉNH[gðgíÈÄàæ¢æ¤ÉÈèÜ·B -B<-Mmodule=foo,bar> Ŷ¬³êéÀÛÌR[hÍ -C<use module split(/,/,q{foo,bar})> Å·B -C<=> Ì`Í B<-m> Æ B<-M> ÌÔÌá¢ðæè±ÆÉӵľ³¢B +小さい組み込みの文法的シュガーとして、 +C<'-Mmodule qw(foo bar)'> の代わりに +B<-mmodule=foo,bar> または B<-Mmodule=foo,bar> と書くことができます。 +これで、インポートするシンボルにクォートを使わなくてもよいようになります。 +B<-Mmodule=foo,bar> で生成される実際のコードは +C<use module split(/,/,q{foo,bar})> です。 +C<=> の形は B<-m> と B<-M> の間の違いを取り除くことに注意してください。 =item B<-n> @@ -1368,10 +1370,10 @@ =end original -ȺÌæ¤È[vªAÀÛÌvOÌñèÉ é©Ìæ¤É -Perl Éw¦µÜ·B -B<sed -n> â B<awk> Ìæ¤Ét@C¼øãÅJèÔµð -sȤ±ÆÉÈèÜ·: +以下のようなループが、実際のプログラムの回りにあるかのように +Perl に指示します。 +B<sed -n> や B<awk> のようにファイル名引数上で繰り返しを +行なうことになります: LINE: while (<>) { @@ -1386,10 +1388,10 @@ =end original -ftHgÅÍAesªó³êé±ÆÍ èܹñB -esÌóðsȤÉÍ B<-p> ðQƵľ³¢B -øÅwè³ê½t@CªÈñç©ÌRÅI[vÅ«È©Á½êA -Perl ÍxðoµÄÌt@CÉÚèÜ·B +デフォルトでは、各行が印字されることはありません。 +各行の印字を行なうには B<-p> を参照してください。 +引数で指定されたファイルがなんらかの理由でオープンできなかった場合、 +Perl は警告を出して次のファイルに移ります。 =begin original @@ -1398,8 +1400,8 @@ =end original -鼃 °éÌÍAÈÆà 1 TÔÈãXV³êĢȢ@Cðø¦IÉ -í·éàÌÅ·: +以下にあげるのは、少なくとも 1 週間以上更新されていないァイルを効率的に +削除するものです: find . -mtime +7 -print | perl -nle unlink @@ -1412,10 +1414,10 @@ =end original -±êÍAt@C¼ª©Â©é²ÆÉvZXðN®µÈÄÏÝÜ·ÌÅA -B<find> Ì B<-exec> XCb`ðg¤æèà¬ÈèÜ·B -±êÍpX¼ÉüsR[hª éƤܵ¦È¢oOÌe¿ðó¯Ü·ÌÅA -B<-O> ÌáÉ]¤±ÆÅC³Å«Ü·B +これは、ファイル名が見つかるごとにプロセスを起動しなくて済みますので、 +B<find> の B<-exec> スイッチを使うよりも速くなります。 +これはパス名に改行コードがあるとうまく扱えないバグの影響を受けますので、 +B<-O> の例に従うことで修正できます。 =begin original @@ -1424,9 +1426,9 @@ =end original -B<awk> Ư¶æ¤ÉAÃÙÉÀs³êévO[vÌOãÉ -Às³êéR[hðwè·é½ßÉAC<BEGIN> ubNÆ -C<END> ubNðg¤±ÆªÅ«Ü·B +B<awk> と同じように、暗黙に実行されるプログラムループの前後に +実行されるコードを指定するために、C<BEGIN> ブロックと +C<END> ブロックを使うことができます。 =item B<-p> @@ -1437,9 +1439,9 @@ =end original -ȺÌæ¤È[vªAÀÛÌvOÌñèÉ é©Ìæ¤É -Perl Éw¦µÜ·B -B<sed> Ìæ¤Ét@C¼øãÅJèÔµðsȤ±ÆÉÈèÜ·: +以下のようなループが、実際のプログラムの回りにあるかのように +Perl に指示します。 +B<sed> のようにファイル名引数上で繰り返しを行なうことになります: LINE: @@ -1459,12 +1461,12 @@ =end original -øÅwè³ê½t@Cª½ç©ÌRÅI[vÅ«È¢êA -Perl ÍxðoµAÌt@CÉÚèÜ·B -esÍA©®IÉó³êé±ÆÉÈèÜ·B -óÌG[Ív½IÆÝȳêÜ·B -óð}§·éÉÍAB<-n> XCb`ðgÁľ³¢B -B<-p> Í B<-n> XCb`ð³øɵܷB +引数で指定されたファイルが何らかの理由でオープンできない場合、 +Perl は警告を出し、次のファイルに移ります。 +各行は、自動的に印字されることになります。 +印字中のエラーは致命的とみなされます。 +印字を抑制するには、B<-n> スイッチを使ってください。 +B<-p> は B<-n> スイッチを無効にします。 =begin original @@ -1473,9 +1475,9 @@ =end original -B<awk> Ư¶æ¤ÉAÃÙÉÀs³êé[vÌOãÉ -Às³êéR[hðwè·é½ßÉAC<BEGIN> ubNÆ -C<END> ubNðg¤±ÆªÅ«Ü·B +B<awk> と同じように、暗黙に実行されるループの前後に +実行されるコードを指定するために、C<BEGIN> ブロックと +C<END> ブロックを使うことができます。 =item B<-P> @@ -1486,8 +1488,8 @@ =end original -B<Ó: -P ÌgpÍSEßçêܹñBȺÈçá¢ÚA«ðÜÞA -æVIÈâèª é©çÅ·> +B<注意: -P の使用は全く薦められません。なぜなら低い移植性を含む、 +先天的な問題があるからです> =begin original @@ -1498,11 +1500,11 @@ =end original -Perl ÉæéRpCðsȤOÉAXNvgð C vvZbTÉ -©¯éæ¤ÉµÜ·B -Rgà cpp ÌfBNeBuà # ÅnÜèÜ·©çARgÌÅð -C vvZbTªF¯µÄµÜ¤ C<"if">, C<"else">, C<"define">Æ¢Á½ -PêÅnßé׫ÅÍ èܹñB +Perl によるコンパイルを行なう前に、スクリプトを C プリプロセッサに +かけるようにします。 +コメントも cpp のディレクティブも # で始まりますから、コメントの最初を +C プリプロセッサが認識してしまう C<"if">, C<"else">, C<"define">といった +単語で始めるべきではありません。 =begin original @@ -1511,8 +1513,8 @@ =end original -C<-P> ðg¤±Æðl¦Ä¢éÈçACPAN É é Filter::cpp à -QƵ½Ù¤ªæ¢Åµå¤B +C<-P> を使うことを考えているなら、CPAN にある Filter::cpp も +参照したほうがよいでしょう。 =begin original @@ -1520,7 +1522,7 @@ =end original --P ªÂâèÍȺÌæ¤Èà̪ èÜ·(±ê¾¯ÅÍ èܹñ): +-P が持つ問題は以下のようなものがあります(これだけではありません): =over 10 @@ -1532,7 +1534,7 @@ =end original -C<#!> sªæè©êéÌÅASÄÌXCb`ÍKp³êܹñB +C<#!> 行が取り除かれるので、全てのスイッチは適用されません。 =item * @@ -1542,7 +1544,7 @@ =end original -C<#!> sÉ C<-P> ð¢Äà®ìµÜ¹ñB +C<#!> 行に C<-P> を書いても動作しません。 =item * @@ -1554,8 +1556,8 @@ =end original -(óÆ) C<#> ÅnÜèAcpp R}hÅÈ¢ B<SÄÌ> sÍæè©êÜ·B -Perl ¶ñâ³K\»âqhL gÌÆrÅàAÅ·B +(空白と) C<#> で始まり、cpp コマンドでない B<全ての> 行は取り除かれます。 +Perl 文字列や正規表現やヒヤドキュメントのと途中でも、です。 =item * @@ -1567,9 +1569,9 @@ =end original -ܽAC vZbTªm跬ĢévbgtH[à èÜ·B -C++ X^CÌ C<"//"> Æ¢¤usÜÅÌRgvðmÁÄ¢éêÅ·B -±ÌêAȺÌæ¤ÈÇ é Perl Ì\¢ÅâèªN±è¾Ü·: +また、C プロセッサが知りすぎているプラットフォームもあります。 +C++ スタイルの C<"//"> という「行末までのコメント」を知っている場合です。 +この場合、以下のような良くある Perl の構造で問題が起こり得ます: s/foo//; @@ -1579,7 +1581,7 @@ =end original -ȺÈç -P KpãȺÌæ¤Ès³ÈR[hÉÈé©çÅ·B +なぜなら -P 適用後以下のような不正なコードになるからです。 s/foo @@ -1590,8 +1592,8 @@ =end original -ñðôƵÄÍANI[g¶ð C<"/"> ÈOÉ·éû@ª èÜ·B -ȺÅÍ C<"!"> ɵĢܷ: +回避策としては、クオート文字を C<"/"> 以外にする方法があります。 +以下では C<"!"> にしています: s!foo!!; @@ -1606,8 +1608,8 @@ =end original -±êÍ C vvZbT¾¯ÅÈAF<sed> à®ì·éKvª èÜ·B -UNIX ÅÈ¢êA»Ìæ¤ÈK^ÉbÜêÈ¢©àµêܹñB +これは C プリプロセッサだけでなく、F<sed> も動作する必要があります。 +UNIX でない場合、そのような幸運に恵まれないかもしれません。 =item * @@ -1617,7 +1619,7 @@ =end original -XNvgÌsÔÍÛ¶³êܹñB +スクリプトの行番号は保存されません。 =item * @@ -1627,7 +1629,7 @@ =end original -C<-x> Í C<-P> ƯÉÍ®ìµÜ¹ñB +C<-x> は C<-P> と同時には動作しません。 =back @@ -1645,16 +1647,16 @@ =end original -R}hCãÌvO¼Ìã©çAt@C¼ø -(ܽÍø B<-->) ÌOÜÅÌXCb`̽ßÌA´nIÈðÍð -sȦéæ¤ÉµÜ·B -±êÍAñÂÌ_bV ªOÉÂXCb`(B<--help> ÈÇ)à -g¦é±Æð¦µÜ·B -±±Å©Â©Á½XCb`ÍA - @ ARGV ©çæè©êAηé Perl vOÌÏÉ -Ýè³êÜ·B@ȺÌvOÍAB<-xyz> Æ¢¤XCb`ð -t¯ÄÀs³ê½É¾¯A"1" Æ\¦µA -B<-xyz=abc> ÆN®³ê½É "abc" Æ\¦µÜ·B +コマンドライン上のプログラム名の後から、ファイル名引数 +(または引数 B<-->) の前までのスイッチのための、原始的な解析を +行なえるようにします。 +これは、二つのダッシュが前につくスイッチ(B<--help> など)も +使えることを示します。 +ここで見つかったスイッチは、 + @ ARGV から取り除かれ、対応する Perl プログラムの変数に +設定されます。 以下のプログラムは、B<-xyz> というスイッチを +付けて実行された時にだけ、"1" と表示し、 +B<-xyz=abc> と起動された時に "abc" と表示します。 #!/usr/bin/perl -s if ($xyz) { print "$xyz\n" } @@ -1666,8 +1668,8 @@ =end original -B<--help> ÍÏ ${-help} ð쬷éÌÅAC<strict refs> ð½³È¢ -±ÆÉӵľ³¢B +B<--help> は変数 ${-help} を作成するので、C<strict refs> を満たさない +ことに注意してください。 =item B<-S> @@ -1678,8 +1680,8 @@ =end original -Perl ªvOðT·Æ«ÉÂ«Ï PATH ðQÆ·éæ¤ÉµÜ· -(vO¼ªfBNgZp[^ðÜÞÆ«ð«Ü·)B +Perl がプログラムを探すときに環境変数 PATH を参照するようにします +(プログラム名がディレクトリセパレータを含むときを除きます)。 =begin original @@ -1692,14 +1694,14 @@ =end original -vbgtH[ÉæÁÄÍAPerl Ít@CðT·Æ«Ég£qð -ÇÁµÜ·B -á¦Î Win32 vbgtH[ÅÍA -³XÌt@C¼Åõª¸sµ½êA".bat" Æ ".cmd" Ìg£qª -ÇÁ³êÜ·BAµùÉ»Ìæ¤Èg£qªÂ¢Ä¢È¢ê¾¯Å·B -Perl ª DEBUGGING ðLøɵÄRpC³êÄ¢½êA --Dp XCb`ðg¤±ÆÅÇÌæ¤ÉõªsíêÄ¢é©ð -\¦³¹é±ÆªÅ«Ü·B +プラットフォームによっては、Perl はファイルを探すときに拡張子を +追加します。 +例えば Win32 プラットフォームでは、 +元々のファイル名で検索が失敗した場合、".bat" と ".cmd" の拡張子が +追加されます。但し既にそのような拡張子がついていない場合だけです。 +Perl が DEBUGGING を有効にしてコンパイルされていた場合、 +-Dp スイッチを使うことでどのように検索が行われているかを +表示させることができます。 =begin original @@ -1709,9 +1711,9 @@ =end original -±êÍA#! ðT|[gµÄ¢È¢vbgtH[ÅA#! É -æéÀsðG~ [g·é½ßÉg¢Ü·B -±ÌáÍ Bourne shell Ý·ÌVFð½ÌvbgtH[Å®«Ü·: +これは、#! をサポートしていないプラットフォームで、#! に +よる実行をエミュレートするために使います。 +この例は Bourne shell 互換のシェルを持つ多くのプラットフォームで動きます: #!/usr/bin/perl eval 'exec /usr/bin/perl -wS $0 ${1+"$@"}' @@ -1736,23 +1738,23 @@ =end original -VXeÍAÅÌsð³µAvOð F</bin/sh> ÉnµA -F</bin/sh> Í Perl vOðVFvOƵÄÀsµæ¤ÆµÜ·B -VFÍ 2 sÚðÊíÌVFR}hƵÄÀsµAPerl C^v^ð -N®·é±ÆÉÈèÜ·B -$0 ÉtpX¼ªüÁÄ¢éÆÍÀçÈ¢VXeà - èÜ·ÌÅA-S ª Perl ÉKvɶÄvOðT·æ¤Éw¦µÜ·B -Perl ªvOð©Â¯éÆA±êçÌsÌðÍðnßÜ·ªA -$running_under_some_shell ª^ÉÈé±ÆªÈ¢½ßA -³·é±ÆÉÈèÜ·B -vOª csh Åðß³êéêÉÍA -½Æ¦t@C¼àÉßÜê½Xy[XÈÇ𵤱ƪūÈÄà -C<${1+"$@"}> ð C<$*> Åu«·¦éKvª é©àµêܹñB -csh ÅÍÈAsh ðN®·éæ¤ÉA¢Â©ÌVXeÅÍA#! Ìsð -Perl à³·é±ÆÉÈÁÄ¢éAR¾¯ÌsÅu«·¦éKvª - é©àµêܹñB -»¤¢Á½§äªø©È¢VXeÅÍAB<csh> Åà B<sh> Åà -Perl Åàg¦éAñèÇ¢û@ðg¤±ÆªKvÅ·: +システムは、最初の行を無視し、プログラムを F</bin/sh> に渡し、 +F</bin/sh> は Perl プログラムをシェルプログラムとして実行しようとします。 +シェルは 2 行目を通常のシェルコマンドとして実行し、Perl インタプリタを +起動することになります。 +$0 にフルパス名が入っているとは限らないシステムも +ありますので、-S が Perl に必要に応じてプログラムを探すように指示します。 +Perl がプログラムを見つけると、これらの行の解析を始めますが、 +$running_under_some_shell が真になることがないため、 +無視することになります。 +プログラムが csh で解釈される場合には、 +たとえファイル名内に埋め込まれたスペースなどを扱うことができなくても +C<${1+"$@"}> を C<$*> で置き換える必要があるかもしれません。 +csh ではなく、sh を起動するように、いくつかのシステムでは、#! の行を +Perl も無視することになっている、コロンだけの行で置き換える必要が +あるかもしれません。 +そういった制御が効かないシステムでは、B<csh> でも B<sh> でも +Perl でも使える、回りくどい方法を使うことが必要です: eval '(exit $?0)' && eval 'exec perl -wS $0 ${1+"$@"}' & eval 'exec /usr/bin/perl -wS $0 $argv:q' @@ -1767,10 +1769,10 @@ =end original -t@C¼ÉfBNgZp[^ªÜÜêÄ¢½ê -(ÂÜèâÎpXܽÍÎpX¾Á½ê)A»µÄ»Ìt@Cª -È©Á½êAt@Cg£qðÇÁ·évbgtH[ÅÍ -ÐƸÂg£qðÇÁµÄAt@CðTµÜ·B +ファイル名にディレクトリセパレータが含まれていた場合 +(つまり絶対パスまたは相対パスだった場合)、そしてそのファイルが +なかった場合、ファイル拡張子を追加するプラットフォームでは +ひとつずつ拡張子を追加して、ファイルを探します。 =begin original @@ -1781,11 +1783,11 @@ =end original -DOS ÌvbgtH[ÅÍAvOÉfBNgZp[^ª -ÜÜêĢȩÁ½êAPATH ðT·OÉÅÉJgfBNgð -TµÜ·B -Unix vbgtH[ÅÍAvO͵§É PATH ©çÌÝ -T³êÜ·B +DOS 風のプラットフォームでは、プログラムにディレクトリセパレータが +含まれていなかった場合、PATH を探す前に最初にカレントディレクトリを +探します。 +Unix プラットフォームでは、プログラムは厳密に PATH からのみ +探されます。 =item B<-t> @@ -1797,8 +1799,8 @@ =end original -B<-T> ƯlÅ·ªAõ`FbNÍv½IG[ÅÍÈxð -¶³¹Ü·B±ÌxÍÊíÊè C<no warnings qw(taint)>ŧäÅ«Ü·B +B<-T> と同様ですが、汚染チェックは致命的エラーではなく警告を +発生させます。この警告は通常通り C<no warnings qw(taint)>で制御できます。 =begin original @@ -1809,10 +1811,10 @@ =end original -B<Ó: ±êÍ -T ÌãpiÅÍ èܹñB> ±êÍ -ÌÌR[hðÀSÉ·éÌð¯é½ßÉêIÉgp³êé½ß¾¯ÌàÌÅ·: -{Ì»iÅR[hÆÅ©çÀSÈR[h̽ßÉÍ -íÉ{Ì B<-T> ðgÁľ³¢B +B<注意: これは -T の代用品ではありません。> これは +昔のコードを安全にするのを助けるために一時的に使用されるためだけのものです: +本当の製品版コードと最初から書く安全なコードのためには +常に本当の B<-T> を使ってください。 =item B<-T> @@ -1830,17 +1832,17 @@ =end original -uõv`FbNðIɵÄAeXgÅ«éæ¤ÉµÜ·B -ÊíA±Ì`FbNÍ setuid â setgid ÌXNvgðÀs·éƫɾ¯A -sÈíêÜ·B -CGI vOâC^[lbgT[o[ð Perl ÅÆ«Ìæ¤ÉA -MpÅ«éÆÍÀçÈ¢lª®©·æ¤ÈvOÅÍ -±êð¾¦IÉLøÉ·éÌÍ¢¢l¦Å·B -Ú×É¢ÄÍ L<perlsec> ðQƵľ³¢B -ZL eBãÌR©çA±ÌIvVÍ Perl É©Èè -n³È¯êάèܹñB -±êÍÊíR}hCÌÅÌûɯé©A -#! \¢ÉηéVXeÅͱ±É©Å·B +「汚染」チェックをオンにして、テストできるようにします。 +通常、このチェックは setuid や setgid のスクリプトを実行するときにだけ、 +行なわれます。 +CGI プログラムやインターネットサーバーを Perl で書くときのように、 +信用できるとは限らない人が動かすようなプログラムでは +これを明示的に有効にするのはいい考えです。 +詳細については L<perlsec> を参照してください。 +セキュリティ上の理由から、このオプションは Perl にかなり +早く渡さなければ成りません。 +これは通常コマンドラインの最初の方につけるか、 +#! 構造に対応するシステムではここに書くかです。 =item B<-u> @@ -1858,18 +1860,18 @@ =end original -±ÌâXCb`ÍvOÌRpCãA -RA_vðsȤæ¤ÉµÜ·B -_IÉÍA±ÌRA_vðÁÄ«Ä(Perl ÌzzÅÍñ³êĢܹñª) -B<undump> vOðgÁÄAÀst@CÉÏ··é±ÆªÅ«Ü·B -±êͽfBXNeÊðH¢Ü·ª (Àst@Cð sprit ·é±ÆÅ -µÍ¸èÜ·)AÀsJnð¬·é±ÆªÅ«Ü·B -(¸çµÄàA"hello world" ÌÀst@CÍAÌ}VÅ 200K öÉ -ÈèÜ·B) -_v·éOɪIÉvOðÀsµÄ¨«½¢êÉÍA -±ÌXCb`ÌãíèÉ dump() ZqðgÁľ³¢B -Ó:B<undump> ªÀsÅ«éÌÍÁèÌ«ºÅ·µA -±êªg¦È¢ÚAo[WÌ Perl à éŵå¤B +この古いスイッチはプログラムのコンパイル後、 +コアダンプを行なうようにします。 +理論的には、このコアダンプを持ってきて(Perl の配布では提供されていませんが) +B<undump> プログラムを使って、実行ファイルに変換することができます。 +これは多少ディスク容量を食いますが (実行ファイルを sprit することで +少しは減ります)、実行開始を速くすることができます。 +(減らしても、"hello world" の実行ファイルは、私のマシンで 200K 程に +なります。) +ダンプする前に部分的にプログラムを実行しておきたい場合には、 +このスイッチの代わりに dump() 演算子を使ってください。 +注意:B<undump> が実行できるのは特定の環境下ですし、 +これが使えない移植バージョンの Perl もあるでしょう。 =begin original @@ -1879,9 +1881,9 @@ =end original -±ÌXCb`ÍRpCÌobNGhÆÈéVµ¢ Perl R[h -WFl[^Ì@\Éu«·¦çêĢܷB -Ú×É¢ÄÍ L<B> Æ L<B::Bytecode> ðQƵĺ³¢B +このスイッチはコンパイラのバックエンドとなる新しい Perl コード +ジェネレータの機能に置き換えられています。 +詳細については L<B> と L<B::Bytecode> を参照して下さい。 =item B<-U> @@ -1896,14 +1898,14 @@ =end original -Perl ÉÀSÅÈ¢ìðµܷB -»ÝÌƱëAuÀSÅÈ¢vìÉÍA -X[p[[UƵÄÀsÉfBNgðí·é±ÆÆA -v½IÈõ`FbNðxÉÖ¦ÄA -setuid vOðÀs·é±ÆÅ·B -B<-w> XCb`( é¢Í C<$^W> Ï)Í -õ`FbNÌxªÀÛÉ I<¶¬³êé> ½ßÉ -±ÌIvVƤÉgíêȯêÎÈèܹñB +Perl に安全でない操作を許可します。 +現在のところ、「安全でない」操作には、 +スーパーユーザとして実行中にディレクトリを削除することと、 +致命的な汚染チェックを警告に替えて、 +setuid プログラムを実行することです。 +B<-w> スイッチ(あるいは C<$^W> 変数)は +汚染チェックの警告が実際に I<生成される> ために +このオプションと共に使われなければなりません。 =item B<-v> @@ -1913,7 +1915,7 @@ =end original -Perl Àst@CÌo[WÆpb`xð\¦µÜ·B +Perl 実行ファイルのバージョンとパッチレベルを表示します。 =item B<-V> @@ -1924,7 +1926,7 @@ =end original -Perl ÌåÈÝèlÆ @INC Ì»ÝÌlð\¦µÜ·B +Perl の主な設定値と @INC の現在の値を表示します。 =item B<-V:>I<name> @@ -1935,7 +1937,7 @@ =end original -wè³ê½ÝèÏÌlð STDOUT É\¦µÜ·Bá¦Î: +指定された設定変数の値を STDOUT に表示します。例えば: $ perl -V:man.dir @@ -1946,8 +1948,8 @@ =end original -Í MANPATH «Ϫ Perl ÌhL gÉANZX·éÆ«É -ÇÌæ¤ÉZbg³êé׫©É¢ÄÍÈ誩èð^¦Ü·B +は MANPATH 環境変数が Perl のドキュメントにアクセスするときに +どのようにセットされるべきかについて強力な手がかりを与えます。 =item B<-w> @@ -1963,13 +1965,13 @@ =end original -1 xµ©gíêȢϼAÝè³êéOÉgíêÄ¢éÏA -Tu[eBÌÄè`A¢è`Ìt@CnhÌQÆâA -read-only ÅI[vµ½t@CnhÖÌ«ÝA -lÉ©¦È¢lðlƵÄgÁ½êAzñð -XJÅ é©Ìæ¤ÉgÁ½êA -100 iKÈãÌTu[eBÌÄAA -»Ì¼½³ñÌ^íµ¢ÉxðoµÜ·B +1 度しか使われない変数名、設定される前に使われている変数、 +サブルーティンの再定義、未定義のファイルハンドルの参照や、 +read-only でオープンしたファイルハンドルへの書き込み、 +数値に見えない値を数値として使った場合、配列を +スカラであるかのように使った場合、 +100 段階以上のサブルーティンの再帰、 +その他たくさんの疑わしい事に警告を出します。 =begin original @@ -1982,13 +1984,13 @@ =end original -±ÌXCb`ÍÀÛÉÍàÌ C<$^W> ÏðLøɷ龯ŷB -C<__WARN__> tbNðgÁÄÁèÌxð³øɵ½è -v½IG[ɵ½èÅ«Ü·B -±êÉ¢ÄÍ L<perlvar> Æ L<perlfunc/warn> ðQƵĺ³¢B -L<perldiag> Æ L<perltrap> àQƵĺ³¢B -àµxÌNXSÌðìµ½¢ÈçAVµ±xÌש¢ -x@\à èÜ·BL<warnings> â L<perllexwarn> ðQƵĺ³¢B +このスイッチは実際には内部の C<$^W> 変数を有効にするだけです。 +C<__WARN__> フックを使って特定の警告を無効にしたり +致命的エラーにしたりできます。 +これについては L<perlvar> と L<perlfunc/warn> を参照して下さい。 +L<perldiag> と L<perltrap> も参照して下さい。 +もし警告のクラス全体を操作したいなら、新しく粒度の細かい +警告機能もあります。L<warnings> や L<perllexwarn> を参照して下さい。 =item B<-W> @@ -1999,8 +2001,8 @@ =end original -C<no warnings> â C<$^W> ÌÝèÉÖíç¸SÄÌxðLøɵܷB -L<perllexwarn> ðQƵĺ³¢B +C<no warnings> や C<$^W> の設定に関わらず全ての警告を有効にします。 +L<perllexwarn> を参照して下さい。 =item B<-X> @@ -2011,8 +2013,8 @@ =end original -C<use warnings> â C<$^W> ÌÝèÉÖíç¸SÄÌxð³øɵܷB -L<perllexwarn> ðQƵĺ³¢B +C<use warnings> や C<$^W> の設定に関わらず全ての警告を無効にします。 +L<perllexwarn> を参照して下さい。 =item B<-x> I<directory> @@ -2031,24 +2033,24 @@ =end original -[Ìæ¤Èå«È³ÖWÌASCII eLXgÌ©½ÜèÌÉ -vOªßÜêÄ¢éð Perl ɽ¦Ü·B -ÅÌ #! ÅnÜèA"perl" Æ¢¤¶ñðÜÞsÜÅÌA -æs·éS~ÍÌÄçêÜ·B -»ÌsÉ éÓ¡ðÂXCb`ÍKp³êÜ·B -directory ªwè³êéÆAPerl ÍvOÌÀsOÉA -»ÌfBNgÉÚèÜ·B -C<-x> XCb`Íæs·éS~̪ð§ä·é¾¯Å·B -vOÌãɳ·×«S~ª éêÉÍA -C<__END__> ÅvOðI¹·éKvª èÜ· (»ÌAãɱ -S~ÌêܽÍSÍAKvÉ¶Ä DATA t@CnhðʵÄA -»ÌvOÅ·éªÅ«Ü·)B +メールのような大きな無関係のASCII テキストのかたまりの中に +プログラムが埋め込まれている事を Perl につたえます。 +最初の #! で始まり、"perl" という文字列を含む行までの、 +先行するゴミは捨てられます。 +その行にある意味を持つスイッチは適用されます。 +directory が指定されると、Perl はプログラムの実行前に、 +そのディレクトリに移ります。 +C<-x> スイッチは先行するゴミの処分を制御するだけです。 +プログラムの後に無視すべきゴミがある場合には、 +C<__END__> でプログラムを終了する必要があります (その、後に続く +ゴミの一部または全部は、必要に応じて DATA ファイルハンドルを通して、 +そのプログラムで処理する事ができます)。 =back =head1 ENVIRONMENT -(«Ï) +(環境変数) =over 12 @@ -2060,7 +2062,7 @@ =end original -chdir ÌøªÈ¢Æ«ÉgíêÜ·B +chdir の引数がないときに使われます。 =item LOGDIR @@ -2070,7 +2072,7 @@ =end original -chdir ÌøªÈAHOME ªZbg³êĢȢƫÉgíêÜ·B +chdir の引数がなく、HOME がセットされていないときに使われます。 =item PATH @@ -2081,8 +2083,8 @@ =end original -TuvZXðÀs·éÆ«ÆAB<-S> ªwè³ê½Æ«ÉvOð -T·ÌÉgíêÜ·B +サブプロセスを実行するときと、B<-S> が指定されたときにプログラムを +探すのに使われます。 =item PERL5LIB @@ -2098,14 +2100,14 @@ =end original -Perl ÌCut@CðT·Æ«ÉWCufBNgÆ -JgfBNgðT·OÉT·fBNgÌXgÅ·B -ÁèÌêɨ¯éA[LeN`˶ÌfBNgÍ -ൠêΩ®IÉÇÁ³êÜ·B -PERL5LIB ªè`³êĢȯêÎAPERLLIB ªgíêÜ·B -fBNgÍ(PATH ƯlÉ)unix ÌvbgtH[ÅÍRÅæØçêA -Windows ÅÍZ~RÅæØçêÜ·(KØÈpXæØè¶Í -C<perl -V:path_sep> R}hÅí©èÜ·)B +Perl のライブラリファイルを探すときに標準ライブラリディレクトリと +カレントディレクトリを探す前に探すディレクトリのリストです。 +特定の場所におけるアーキテクチャ依存のディレクトリは +もしあれば自動的に追加されます。 +PERL5LIB が定義されていなければ、PERLLIB が使われます。 +ディレクトリは(PATH と同様に)unix 風のプラットフォームではコロンで区切られ、 +Windows ではセミコロンで区切られます(適切なパス区切り文字は +C<perl -V:path_sep> コマンドでわかります)。 =begin original @@ -2115,10 +2117,10 @@ =end original -(vOª setuid Ü½Í setgid ÅÀs³êÄ¢é©A -B<-T> XCb`ªwè³êÄ)õ`FbNt«Å®ìµÄ¢éêA -Ç¿çÌ«ÏàgíêܹñB -ãíèÉvOÅȺÌæ¤É·é׫ŷ: +(プログラムが setuid または setgid で実行されているか、 +B<-T> スイッチが指定されて)汚染チェック付きで動作している場合、 +どちらの環境変数も使われません。 +代わりにプログラム中で以下のようにするべきです: use lib "/my/directory"; @@ -2135,15 +2137,15 @@ =end original -R}hCIvV(XCb`)Å·B -±ÌÏÌXCb`ÍSÄÌ Perl R}hCÅwè³ê½©Ìæ¤É -µíêÜ·B -B<-[DIMUdmtw]> IvVÌݪLøÅ·B -(vOª setuid Ü½Í setgid ÅÀs³êÄ¢é©A -B<-T> XCb`ªwè³êÄ)õ`FbNt«Å®ìµÄ¢éêA -±ÌÏͳ³êÜ·B -PERL5OPT ª B<-T> ÅnÜÁÄ¢éêA -õ`FbNªLøÆÈèAcèÌIvVͳ³êÜ·B +コマンドラインオプション(スイッチ)です。 +この変数のスイッチは全ての Perl コマンドラインで指定されたかのように +扱われます。 +B<-[DIMUdmtw]> オプションのみが有効です。 +(プログラムが setuid または setgid で実行されているか、 +B<-T> スイッチが指定されて)汚染チェック付きで動作している場合、 +この変数は無視されます。 +PERL5OPT が B<-T> で始まっている場合、 +汚染チェックが有効となり、残りのオプションは無視されます。 =item PERLIO @@ -2154,9 +2156,9 @@ =end original -ó(ܽÍR)ÅæØçê½ PerlIO wÌXgÅ·B -perl ª IO É PerlIO VXeðg¤æ¤ÉRpC³êÄ¢éê -(±êªftHgÅ·)A±êçÌwª perl Ì IO Ée¿ð^¦Ü·B +空白(またはコロン)で区切られた PerlIO 層のリストです。 +perl が IO に PerlIO システムを使うようにコンパイルされている場合 +(これがデフォルトです)、これらの層が perl の IO に影響を与えます。 =begin original @@ -2167,10 +2169,10 @@ =end original -Ï"®«"ÆÌÞ«ð²·é½ßÉw¼ð C<:perlio> Ìæ¤ÉRÅ -nßéµKª èÜ·Bµ©µvOÍwðè`·é¶ñÌp[X·é -(PERLIO «ÏÌfR[hÉàgíêÜ·)Æ«ÉRðZp[^ÆµÄ -µ¢Ü·B +変数"属性"との類似性を強調するために層名を C<:perlio> のようにコロンで +始める慣習があります。しかしプログラムは層を定義する文字列のパースする +(PERLIO 環境変数のデコードにも使われます)ときにコロンをセパレータとして +扱います。 =begin original @@ -2178,7 +2180,7 @@ =end original -PERLIO ðZbgµÈ¢AܽÍó¶ñðZbg·éÆAC<:stdio> Æ¿Å·B +PERLIO をセットしない、または空文字列をセットすると、C<:stdio> と等価です。 =begin original @@ -2189,11 +2191,11 @@ =end original -±ÌXgÍ I<SÄÌ> perl Ì IO ÌftHgÆÈèÜ·B -]ÁÄgÝÝÌwÌݪ±ÌXgÉLqÂ\Å·B -ȺÈç(:encoding() Ìæ¤È)OÇÝÝÌwÍ[h·é½ßÉ -IO ªKv¾©çÅ·BftHgƵÄOGR[fBOð -ÇÁ·éû@É¢ÄÍ L<"open pragma"|open> ðQƵľ³¢B +このリストは I<全ての> perl の IO のデフォルトとなります。 +従って組み込みの層のみがこのリストに記述可能です。 +なぜなら(:encoding() のような)外部読み込みの層はロードするために +IO が必要だからです。デフォルトとして外部エンコーディングを +追加する方法については L<"open pragma"|open> を参照してください。 =begin original @@ -2202,8 +2204,8 @@ =end original -PERLIO «ÏÉÁ¦é±ÆªÃÈwÌÈPÈêðȺɦµÜ·B -Ú×É¢ÄÍ L<PerlIO> ðQƵľ³¢B +PERLIO 環境変数に加えることが妥当な層の簡単な一覧を以下に示します。 +詳細については L<PerlIO> を参照してください。 =over 8 @@ -2217,9 +2219,9 @@ =end original -Ⱥɦ· C<:utf8> tOð I<³øÉ·é> ½ßÌ[wÅ·B -O[oÈ PERLIO «ÏɱêðÜßé̪LpÈêÍ è»¤àȢŷB -¨»ç C<:crlf:bytes> © C<:perlio:bytes> ̱Æðl¦Ä¢éÌŵå¤B +以下に示す C<:utf8> フラグを I<無効にする> ための擬似層です。 +グローバルな PERLIO 環境変数にこれを含めるのが有用な場合はありそうもないです。 +おそらく C<:crlf:bytes> か C<:perlio:bytes> のことを考えているのでしょう。 =item :crlf @@ -2232,10 +2234,10 @@ =end original -"eLXg"Æ"oCi"t@Cð¯Ê·é CRLF ©ç "\n" ÖÌÏ·ð -MS-DOS yѽæ¤ÈIy[eBOVXeÌû®Ås¤wÅ·B -(»ÝÌƱë Control-Z ðt@CÌIíèƩȷƱëÜÅ MS-DOS ð -ÜËÄܹ͢ñB) +"テキスト"と"バイナリ"ファイルを識別する CRLF から "\n" への変換を +MS-DOS 及び似たようなオペレーティングシステムの方式で行う層です。 +(現在のところ Control-Z をファイルの終わりと見なすところまで MS-DOS を +まねてはいません。) =item :mmap @@ -2247,9 +2249,9 @@ =end original -t@CÌ"ÇÝÝ"É C<mmap()> ðgÁÄt@C(SÌ)ð -vZXÌAhXóÔÉèÄA»êð PerlIO Ì"obt@"ÆµÄ -g¤½ßÌwÅ·B +ファイルの"読み込み"に C<mmap()> を使ってファイル(全体)を +プロセスのアドレス空間に割り当て、それを PerlIO の"バッファ"として +使うための層です。 =item :perlio @@ -2261,8 +2263,8 @@ =end original -±êÍ"stdio"Ìobt@Oð PerlIO "w" ƵÄÄÀµ½àÌÅ·B -]ÁÄÇÌæ¤Èw©çàìÉÄÑo³êÜ·(T^IÉÍ C<:unix>)B +これは"stdio風"のバッファリングを PerlIO "層" として再実装したものです。 +従ってどのような層からも操作時に呼び出されます(典型的には C<:unix>)。 =item :pop @@ -2273,8 +2275,8 @@ =end original -æªÌwð·é½ßÌÀ±IÈ[wÅ·B -jgOZÉηéÌƯlÌTd³ðÁÄgÁľ³¢B +先頭の層を除去するための実験的な擬似層です。 +ニトログリセリンに対するのと同様の慎重さを持って使ってください。 =item :raw @@ -2287,10 +2289,10 @@ =end original -¼Ìwðì·é½ßÌ[wÅ·B C<:raw> wðKp·é±ÆÍ -C<binmode($fh)> ðÄÑo·ÌÆ¿Å·B -±êÍXg[ÌeoCgð½ÌÏ·àȵÉÊß³¹Ü·B -ÁÉ CRLF Ï·âP[©çÌ :utf8 ª³øÉÈèÜ·B +他の層を操作するための擬似層です。 C<:raw> 層を適用することは +C<binmode($fh)> を呼び出すのと等価です。 +これはストリームの各バイトを何の変換もなしに通過させます。 +特に CRLF 変換やロケールからの :utf8 が無効になります。 =begin original @@ -2300,9 +2302,9 @@ =end original -ÌÌo[WÌ Perl ÆÙÈèAC<:raw> Í C<:crlf> Ìt -I<ÅÍ èܹñ> - Xg[ÌoCiÌ«¿Ée¿ð^¦é -»Ì¼Ìwà³ê驳øÉÈèÜ·B +昔のバージョンの Perl と異なり、C<:raw> は C<:crlf> の逆 +I<ではありません> - ストリームのバイナリの性質に影響を与える +その他の層も除去されるか無効になります。 =item :stdio @@ -2316,12 +2318,12 @@ =end original -±ÌwÍVXeÌ ANSI C "stdio" CuR[ðbvµ½ -PerlIO C^[tF[XðñµÜ·B -±ÌwÍobt@OÆ IO ̼ûðñµÜ·B -C<:stdio> wÍ CRLF Ï·ð I<síÈ¢> ±ÆÉӵľ³¢B -½Æ¦»êªvbgtH[ÌÊíÌUé¢Å ÁÄàAÅ·B -±êðs¤½ßÉÍ C<:crlf> wªKvÅ·B +この層はシステムの ANSI C "stdio" ライブラリコールをラップした +PerlIO インターフェースを提供します。 +この層はバッファリングと IO の両方を提供します。 +C<:stdio> 層は CRLF 変換を I<行わない> ことに注意してください。 +たとえそれがプラットフォームの通常の振る舞いであっても、です。 +これを行うためには C<:crlf> 層が必要です。 =item :unix @@ -2331,7 +2333,7 @@ =end original -C<read>, C<write>, C<lseek> ÈÇðÄÑo·áxwÅ·B +C<read>, C<write>, C<lseek> などを呼び出す低レベル層です。 =item :utf8 @@ -2345,10 +2347,10 @@ =end original -oͪ utf8 ÅAüÍÍùÉ utf8 Ì`ÉÈÁÄ¢éƺÊÌwÉ`¦é -tOðIÉ·é[wÅ·BPERLIO «ÏÅ UTF-8 ªftHgÅ éÆ -Ýè³êÄ¢éêÉLp©àµêܹñB -(±ÌUé¢ðItÉ·é½ßÉÍ C<:bytes> wðgÁľ³¢B) +出力が utf8 で、入力は既に utf8 の形になっていると下位の層に伝える +フラグをオンにする擬似層です。PERLIO 環境変数で UTF-8 がデフォルトであると +設定されている場合に有用かもしれません。 +(この振る舞いをオフにするためには C<:bytes> 層を使ってください。) =item :win32 @@ -2360,10 +2362,10 @@ =end original -Win32 vbgtH[ɨ¢ÄA±Ì I<À±I> wÍ -unix ÌlÌt@CLqqwÌãíèÉlCeBuÈ -"nh" IO ðgpµÜ·B -±Ì[XÅÍoOª é±Æªí©ÁĢܷB +Win32 プラットフォームにおいて、この I<実験的> 層は +unix 風の数値のファイル記述子層の代わりにネイティブな +"ハンドル" IO を使用します。 +このリリースではバグがあることがわかっています。 =back @@ -2373,8 +2375,8 @@ =end original -SÄÌvbgtH[ÅftHgÌwÌgÝí¹Í[¾Å«é -ÊÉÈÁÄ¢é͸ŷB +全てのプラットフォームでデフォルトの層の組み合わせは納得できる +結果になっているはずです。 =begin original @@ -2385,10 +2387,10 @@ =end original -UNIX vbgtH[ÅͱêÍ "unix perlio" Ü½Í "stdio" Æ¿Å·B -configure XNvgÍVXeÌCuªobt@Ö̬ANZXû@ð -ñ·éêÍ"stdio"Àðg¤æ¤ÝèµA»¤ÅȯêÎ"unix perlio" -Àðg¢Ü·B +UNIX プラットフォームではこれは "unix perlio" または "stdio" と等価です。 +configure スクリプトはシステムのライブラリがバッファへの高速アクセス方法を +提供する場合は"stdio"実装を使うよう設定し、そうでなければ"unix perlio" +実装を使います。 =begin original @@ -2401,12 +2403,12 @@ =end original -Win32 ÅÍftHgÍ"unix crlf"Å·B -Win32 Ì"stdio" Í perl IO ÉÆÁÄA -C RpCÌx_[/o[W˶ÌåÊÌoO/dlRêª èÜ·B -obt@ƵĩgÌ C<crlf> wðg¤±ÆűêçÌâèðñðµA -¨ðæèêѵ½àÌɵܷB -C<crlf> wÍobt@OÉ CRLF Æ "\n" ÌÏ·ðs¢Ü·B +Win32 ではデフォルトは"unix crlf"です。 +Win32 の"stdio" は perl IO にとって、 +C コンパイラのベンダー/バージョン依存の大量のバグ/仕様漏れがあります。 +バッファとして自身の C<crlf> 層を使うことでこれらの問題を回避し、 +物事をより一貫したものにします。 +C<crlf> 層はバッファリング時に CRLF と "\n" の変換を行います。 =begin original @@ -2417,10 +2419,10 @@ =end original -±Ì[XÅÍ Win32 ÅÌîêwÆµÄ C<unix> ðg¤±ÆÅA -¢¾É C RpCÌlÌt@CLqq[`ðg¢Ü·B -g£ð\è³êÄ¢éÀ±IÈlCeBuÌ C<win32> wª èA -ÅIIÉÍ±êª Win32 ÅÌftHgÆÈé\èÅ·B +このリリースでは Win32 での基底層として C<unix> を使うことで、 +未だに C コンパイラの数値のファイル記述子ルーチンを使います。 +拡張を予定されている実験的なネイティブの C<win32> 層があり、 +最終的にはこれが Win32 でのデフォルトとなる予定です。 =item PERLIO_DEBUG @@ -2432,9 +2434,9 @@ =end original -t@CܽÍfoCX̼OðZbg·éÆAPerlIO TuVXeÌ -¢Â©Ì쪻Ìt@CÉ(ÇL[hÅ)L^³êÜ·B -UNIX ÅÌT^IÈg¢ûÍȺÌÊèÅ·: +ファイルまたはデバイスの名前をセットすると、PerlIO サブシステムの +いくつかの操作がそのファイルに(追記モードで)記録されます。 +UNIX での典型的な使い方は以下の通りです: PERLIO_DEBUG=/dev/tty perl script ... @@ -2444,7 +2446,7 @@ =end original -Win32 ÅÍȺªÙÚ¿Å·: +Win32 では以下がほぼ等価です: set PERLIO_DEBUG=CON perl script ... @@ -2460,9 +2462,9 @@ =end original -Perl CuðT·ÌÉWCuÆJgfBNgÌOÉ -õ·éfBNgÌXgÅ·B -PERL5LIB ªè`³êÄ¢éÆAPERLLIB ÍgíêܹñB +Perl ライブラリを探すのに標準ライブラリとカレントディレクトリの前に +検索するディレクトリのリストです。 +PERL5LIB が定義されていると、PERLLIB は使われません。 =item PERL5DB @@ -2472,8 +2474,8 @@ =end original -fobKR[hðÇÝÞÌÉgíêéR}hÅ·B -ftHgÍȺÌÊè: +デバッガコードを読み込むのに使われるコマンドです。 +デフォルトは以下の通り: BEGIN { require 'perl5db.pl' } @@ -2489,13 +2491,13 @@ =end original -"obNNH[g" R}hâ system() ðÀs·é½ßÉ -Perl ªàIÉgíȯêÎÈçÈ¢ãÖVFðwèµÜ·B -ftHgÍ WindowsNT ÅÍ C<cmd.exe /x/d/c>AWindows95 ÅÍ -C<command.com /c> Å·B -lÍXy[XæØèÆl¦çêÜ·B -(óâobNXbV Ìæ¤È) Ûì·éKvª é¶ÌOÉÍ -obNXbV ªÂ¯çêÜ·B +"バッククォート" コマンドや system() を実行するために +Perl が内部的に使わなければならない代替シェルを指定します。 +デフォルトは WindowsNT では C<cmd.exe /x/d/c>、Windows95 では +C<command.com /c> です。 +値はスペース区切りと考えられます。 +(空白やバックスラッシュのような) 保護する必要がある文字の前には +バックスラッシュがつけられます。 =begin original @@ -2508,12 +2510,12 @@ =end original -COMSPEC ÌlÍ[U[ÉæÁÄ©ÈèlXÅAÚA«Ìâèðø«N±·ÌÅA -Perl ͱÌÚIÉ COMSPEC ÍgíÈ¢±ÆÉӵľ³¢B -³çÉAPerl ÍÎbIÈprÉÍü©È¢VFàpÅ«Ü·ªA -COMSPEC É»Ìæ¤ÈVFðwè·éƼÌvO -(ÊÍÎbIÈprÉKµ½VFðT·ÌÉ COMSPEC ðg¢Ü·)ÌKØÈpð -×·é©àµêܹñB +COMSPEC の値はユーザーによってかなり様々で、移植性の問題を引き起こすので、 +Perl はこの目的に COMSPEC は使わないことに注意してください。 +さらに、Perl は対話的な用途には向かないシェルも利用できますが、 +COMSPEC にそのようなシェルを指定すると他のプログラム +(普通は対話的な用途に適したシェルを探すのに COMSPEC を使います)の適切な利用を +邪魔するかもしれません。 =item PERL_DEBUG_MSTATS @@ -2527,12 +2529,12 @@ =end original -Perl ª Perl zzpbP[WÉÜÜêé malloc [`ðgÁÄ -RpC³êÄ¢éê(C<perl -V:d_mymalloc> ª 'define' Ìê)ÉÌÝ -LøÅ·B -Ýè³êéÆAÀsãÉóµª\¦³êÜ·B -1 ð´¦élªÝè³êéÆARpCãÉà -óµð\¦µÜ·B +Perl が Perl 配布パッケージに含まれる malloc ルーチンを使って +コンパイルされている場合(C<perl -V:d_mymalloc> が 'define' の場合)にのみ +有効です。 +設定されると、実行後にメモリ状況が表示されます。 +1 を超える数値が設定されると、コンパイル後にも +メモリ状況を表示します。 =item PERL_DESTRUCT_LEVEL @@ -2544,10 +2546,10 @@ =end original -Perl ÌÀst@Cª B<-DDEBUGGING> t«Å\z³ê½êÉÌÝLøÅ·B -±ÌIvVÍIuWFNgâ»Ì¼Ìt@XÌO[oÈ -fXgN^ÌUé¢ð§äµÜ·B³çÈéîñÉ¢ÄÍ -L<perlhack/PERL_DESTRUCT_LEVEL> ðQƵľ³¢B +Perl の実行ファイルが B<-DDEBUGGING> 付きで構築された場合にのみ有効です。 +このオプションはオブジェクトやその他のリファレンスのグローバルな +デストラクタの振る舞いを制御します。さらなる情報については +L<perlhack/PERL_DESTRUCT_LEVEL> を参照してください。 =item PERL_DL_NONLAZY @@ -2561,12 +2563,12 @@ =end original -1 ÉZbg·éÆA Perl Í B<SÄÌ> ¢è`V{ð_Ci~bNCuð -[hµ½Æ«ÉðµÜ·B -ftHgÌUé¢ÍgíêéÆ«ÉV{ððµÜ·B -±ÌÏðÝè·é±ÆÅAg£@\ÌeXgÉÖ¼ÌXy~Xð -eXgXC[gªÄÑo³ÈÄàG[ðmÀÉó¯æé±ÆªÅ«éÌÅ -ÖÅ·B +1 にセットすると、 Perl は B<全ての> 未定義シンボルをダイナミックライブラリを +ロードしたときに解決します。 +デフォルトの振る舞いは使われるときにシンボルを解決します。 +この変数を設定することで、拡張機能のテスト時に関数名のスペルミスを +テストスイートが呼び出さなくてもエラーを確実に受け取ることができるので +便利です。 =item PERL_ENCODING @@ -2577,8 +2579,8 @@ =end original -C<encoding> vO}ð¾¦IÈGR[fBO¼ðwè¹¸É -gpµ½êAPERL_ENCODING «ϪGR[fBO¼ÆµÄgíêÜ·B +C<encoding> プラグマを明示的なエンコーディング名を指定せずに +使用した場合、PERL_ENCODING 環境変数がエンコーディング名として使われます。 =item PERL_HASH_SEED @@ -2592,11 +2594,11 @@ =end original -(Perl 5.8.1 ©ç) Perl ÌànbV ÖÌ_»ÉgíêÜ·B -5.8.1 ÈOÌUé¢ðG~ [g·é½ßÉÍA®ðwèµÜ· -([Í 5.8.0 Æ®Sɯ¶ðÓ¡µÜ·)B -"5.8.1 ÈO" Æ¢¤ÌÍA»Ì¼Ì±ÆàÜßÄA -Perl ð½xÀsµÄànbV L[ÌÀѪ¯¶Å é±ÆðÓ¡µÜ·B +(Perl 5.8.1 から) Perl の内部ハッシュ関数のランダム化に使われます。 +5.8.1 以前の振る舞いをエミュレートするためには、整数を指定します +(ゼロは 5.8.0 と完全に同じ順序を意味します)。 +"5.8.1 以前" というのは、その他のことも含めて、 +Perl を何度実行してもハッシュキーの並び順が同じであることを意味します。 =begin original @@ -2606,10 +2608,10 @@ =end original -ftHgÌUé¢ÍA PERL_HASH_SEED ªZbg³êÈ¢Àè -_»³êÜ·BPerl ª C<-DUSE_HASH_SEED_EXPLICIT> t«Å -RpC³ê½êAftHgÌUé¢Í -PERL_HASH_SEED ªZbg³êÈ¢Àè_» B<³êܹñ>B +デフォルトの振る舞いは、 PERL_HASH_SEED がセットされない限り +ランダム化されます。Perl が C<-DUSE_HASH_SEED_EXPLICIT> 付きで +コンパイルされた場合、デフォルトの振る舞いは +PERL_HASH_SEED がセットされない限りランダム化 B<されません>。 =begin original @@ -2620,11 +2622,11 @@ =end original -PERL_HASH_SEED ªZbg³êÈ¢©AlÅÈ¢¶ñªZbg³ê½êA -Perl ÍIy[eBOVXeÆCuªñ·é[Ì -íðgpµÜ·B -±êÉæèAPerl ðÀs·éxÉ keys(), values(), each() ÌÊÌ -ªÏíèÜ·B +PERL_HASH_SEED がセットされないか、数値でない文字列がセットされた場合、 +Perl はオペレーティングシステムとライブラリが提供する擬似乱数の +種を使用します。 +これにより、Perl を実行する度に keys(), values(), each() の結果の +順序が変わります。 =begin original @@ -2635,10 +2637,10 @@ =end original -B<nbV ÌíÍ÷ÈâèÅ é±ÆÉӵľ³¢>B -nbV Í Perl R[hÉηé[JE[gU©ççé½ßÉ -_»³êÜ·Bè®ÅíðÝè·é±ÆÉæè±ÌçèͪIÉA - é¢Í®SɸíêÜ·B +B<ハッシュの種は微妙な問題であることに注意してください>。 +ハッシュは Perl コードに対するローカル・リモート攻撃から守るために +ランダム化されます。手動で種を設定することによりこの守りは部分的に、 +あるいは完全に失われます。 =begin original @@ -2647,8 +2649,8 @@ =end original -³çÈéîñÉ¢ÄÍ L<perlsec/"Algorithmic Complexity Attacks"> Æ -L</PERL_HASH_SEED_DEBUG> ðQƵľ³¢B +さらなる情報については L<perlsec/"Algorithmic Complexity Attacks"> と +L</PERL_HASH_SEED_DEBUG> を参照してください。 =item PERL_HASH_SEED_DEBUG @@ -2661,10 +2663,10 @@ =end original -(Perl 5.8.1 ©ç) ±êð 1 ÉÝè·éÆAÀsJnÉnbV ÌíÌ -lðæÊ(STDERR)Éo͵ܷB -±êÍ L</PERL_HASH_SEED> ÆgÝí¹é±ÆÅnbV Ì_»É -æéñèIÈUé¢ÌfobOð¯é±ÆðÚIƵĢܷB +(Perl 5.8.1 から) これを 1 に設定すると、実行開始時にハッシュの種の +値を画面(STDERR)に出力します。 +これは L</PERL_HASH_SEED> と組み合わせることでハッシュのランダム化に +よる非決定的な振る舞いのデバッグを助けることを目的としています。 =begin original @@ -2676,12 +2678,12 @@ =end original -B<nbV ÌíÍ÷ÈâèÅ é±ÆÉӵľ³¢>: -±êðmé±ÆÅA[g©çÅà Perl ÌR[hÉεÄT[rXÛUð -d|¯é±ÆªoÜ·B³çÈéîñÉ¢ÄÍ -L<perlsec/"Algorithmic Complexity Attacks"> ðQƵľ³¢B -méKvÌÈ¢lXÉ뵀 B<nbV ÌíðöJµÈ¢Å¾³¢>B -L<Hash::Util> Ì hash_seed() àQƵľ³¢B +B<ハッシュの種は微妙な問題であることに注意してください>: +これを知ることで、リモートからでも Perl のコードに対してサービス拒否攻撃を +仕掛けることが出来ます。さらなる情報については +L<perlsec/"Algorithmic Complexity Attacks"> を参照してください。 +知る必要のない人々に対して B<ハッシュの種を公開しないでください>。 +L<Hash::Util> の hash_seed() も参照してください。 =item PERL_ROOT (specific to the VMS port) @@ -2695,13 +2697,13 @@ =end original -Perl Æ VMS êpÌ @INC ̽ßÌ_foCXðÜÞA -Ï·ªB³ê½[gÆÈé_¼Å·B -VMS Ì Perl Ée¿ð^¦é»Ì¼Ì_¼ÆµÄÍ -PERLSHR, PERL_ENV_TABLES, SYS$TIMEZONE_DIFFERENTIAL ª èÜ·ªA -±êçÍIvVÅ·BÚ×É¢ÄÍ -Perl \[XzzpbP[WÌ L<perlvms> Æ F<README.vms> Å -c_³êĢܷB +Perl と VMS 専用の @INC のための論理デバイスを含む、 +変換が隠されたルートとなる論理名です。 +VMS の Perl に影響を与えるその他の論理名としては +PERLSHR, PERL_ENV_TABLES, SYS$TIMEZONE_DIFFERENTIAL がありますが、 +これらはオプションです。詳細については +Perl ソース配布パッケージの L<perlvms> と F<README.vms> で +議論されています。 =item PERL_SIGNALS @@ -2714,11 +2716,11 @@ =end original -Perl 5.8.1 È~ÅLøÅ·B±êÉ C<unsafe> ðZbg·éÆ -Perl 5.8.0 ÈOÌVOiÌUé¢(¼ÚIÅ·ªÀSÅÍ èܹñ)ª -³³êÜ·BC<safe>ðZbg·éÆÀSÈ(x·é)VOiª -gíêÜ·B -L<perlipc/"Deferred Signals (Safe signals)">ðQƵľ³¢B +Perl 5.8.1 以降で有効です。これに C<unsafe> をセットすると +Perl 5.8.0 以前のシグナルの振る舞い(直接的ですが安全ではありません)が +復元されます。C<safe>をセットすると安全な(遅延する)シグナルが +使われます。 +L<perlipc/"Deferred Signals (Safe signals)">を参照してください。 =item PERL_UNICODE @@ -2733,14 +2735,14 @@ =end original -B<-C> R}hCXCb`Æ¿Å·B -±êÍ^UlÏÅÍÈ¢±ÆÉӵľ³¢ -- ±êð C<"1"> É -Zbg·é±ÆÍ(ÇñÈӡɨ¢Äà)"Unicode ðLøÉ·é"½ßÌ -³µ¢û@ÅÍ èܹñB -µ©µA"Unicode ð³øÉ·é"½ßÉ C<"0">ðZbg·é±ÆÍoÜ· -( é¢Í Perl ÌN®OÉ È½Ì¨g¢ÌVFÅ PERL_UNICODE ð -¢ÝèÉ·é±ÆÅàoÜ·)B -³çÈéîñÉ¢ÄÍ C<-C> XCb`Ìà¾ðQƵľ³¢B +B<-C> コマンドラインスイッチと等価です。 +これは真偽値変数ではないことに注意してください -- これを C<"1"> に +セットすることは(どんな意味においても)"Unicode を有効にする"ための +正しい方法ではありません。 +しかし、"Unicode を無効にする"ために C<"0">をセットすることは出来ます +(あるいは Perl の起動前にあなたのお使いのシェルで PERL_UNICODE を +未設定にすることでも出来ます)。 +さらなる情報については C<-C> スイッチの説明を参照してください。 =item SYS$LOGIN (specific to the VMS port) @@ -2750,7 +2752,7 @@ =end original -chdir ÌøªÈAHOME Æ LOGDIR ªZbg³êĢȢƫÉgíêÜ·B +chdir の引数がなく、HOME と LOGDIR がセットされていないときに使われます。 =back @@ -2761,8 +2763,8 @@ =end original -ÁèÌ©R¾êÉÁLÌf[^ð Perl ªÇÌæ¤Éµ¤©ð -§ä·é«Ïà èÜ·BL<perllocale> ðQƵĺ³¢B +特定の自然言語に特有のデータを Perl がどのように扱うかを +制御する環境変数もあります。L<perllocale> を参照して下さい。 =begin original @@ -2774,12 +2776,12 @@ =end original -±êç̼ÉÍA -Às³êÄ¢évO é¢Í`ChvZXªªLøɵȢÀèA -Perl Í«Ïðg¢Ü¹ñB -µ©µAsetuid Å®ì·évOͽ©ð·éOÉA -PÉlXÉÏÈCðN±³¹È¢½ßÉ -ȺÌR[hðüêĨ̪æ¢Å·B +これらの他には、 +実行されているプログラムあるいはチャイルドプロセスがが有効にしない限り、 +Perl は環境変数を使いません。 +しかし、setuid で動作するプログラムは何かをする前に、 +単に人々に変な気を起こさせないために +以下のコードを入れておくのがよいです。 $ENV{PATH} = '/bin:/usr/bin'; # or whatever you need $ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL}; @@ -2787,7 +2789,7 @@ =begin meta -Translate: gº õl <JAE00****@nifty*****> +Translate: 吉村 寿人 <JAE00****@nifty*****> Update: Kentaro Shirakata <argra****@ub32*****> License: GPL or Artistic