aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/a2p.1
diff options
context:
space:
mode:
Diffstat (limited to 'ja_JP.eucJP/man/man1/a2p.1')
-rw-r--r--ja_JP.eucJP/man/man1/a2p.1218
1 files changed, 0 insertions, 218 deletions
diff --git a/ja_JP.eucJP/man/man1/a2p.1 b/ja_JP.eucJP/man/man1/a2p.1
deleted file mode 100644
index 40c9922daf..0000000000
--- a/ja_JP.eucJP/man/man1/a2p.1
+++ /dev/null
@@ -1,218 +0,0 @@
-.rn '' }`
-.\" jpman %Id: a2p.1,v 1.3 1997/07/22 14:10:51 konuma Stab %
-''' %Header: /home/ncvs/src/gnu/usr.bin/perl/x2p/a2p.1,v 1.1.1.1 1994/09/10 06:27:55 gclarkii Exp %
-'''
-''' %Log: a2p.1,v %
-''' Revision 1.1.1.1 1994/09/10 06:27:55 gclarkii
-''' Initial import of Perl 4.046 bmaked
-'''
-'''
-.\" Revision 1.1.1.1 1993/08/23 21:30:10 nate
-.\" PERL!
-.\"
-''' Revision 4.0 91/03/20 01:57:11 lwall
-''' 4.0 baseline.
-'''
-''' Revision 3.0 89/10/18 15:34:22 lwall
-''' 3.0 baseline
-'''
-''' Revision 2.0.1.1 88/07/11 23:16:25 root
-''' patch2: changes related to 1985 awk
-'''
-''' Revision 2.0 88/06/05 00:15:36 root
-''' Baseline version 2.0.
-'''
-'''
-.de Sh
-.br
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp
-.if t .sp .5v
-.if n .sp
-..
-.de Ip
-.br
-.ie \\n.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-'''
-''' Set up \*(-- to give an unbreakable dash;
-''' string Tr holds user defined translation string.
-''' Bell System Logo is used as a dummy character.
-'''
-.tr \(*W-|\(bv\*(Tr
-.ie n \{\
-.ds -- \(*W-
-.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-.ds L" ""
-.ds R" ""
-.ds L' '
-.ds R' '
-'br\}
-.el\{\
-.ds -- \(em\|
-.tr \*(Tr
-.ds L" ``
-.ds R" ''
-.ds L' `
-.ds R' '
-'br\}
-.TH A2P 1 LOCAL
-.SH 名称
-a2p - Awk から Perl へのトランスレータ
-.SH 書式
-.B a2p [options] filename
-.SH 解説
-.I a2p
-はコマンドラインで指定された (あるいは標準入力からの) awk スクリプトを
-とり、同等の働きをする
-.I perl
-スクリプトを標準出力に出力します。
-.Sh オプション
-オプションには以下のものがあります:
-.TP 5
-.B \-D<number>
-デバッグフラグをセットします。
-.TP 5
-.B \-F<character>
-awk スクリプトが常にこの -F スイッチ付きで実行されることを指定します。
-.TP 5
-.B \-n<fieldlist>
-入力を分割して配列に格納する必要がない場合、
-入力フィールドの名前を指定します。
-例えば、パスワードファイルを処理する awk スクリプトを変換する場合、
-このように指定します:
-.sp
- a2p -7 -nlogin.password.uid.gid.gcos.shell.home
-.sp
-フィールド名の区切りには任意のデリミタが使用できます。
-.TP 5
-.B \-<number>
-a2p は、入力が常に指定した数のフィールドから成っていることを仮定します。
-.Sh 考察
-a2p は人間と同じぐらいうまい変換はできませんが、
-大抵の場合はそこそこうまく処理します。
-場合によっては、
-生成された perl スクリプトを吟味し、少し手を加えたいと思うことも
-あるでしょう。
-以下にいくつかの場合を、順不同で説明します。
-.PP
-文字列を表す式のまわりに int() を付け、
-数値として解釈されるようにする awk イディオムが
-あります (その引数は常に整数型なのですが)。
-これは一般に perl では不要ですが、
-a2p は引数が常に整数となるかどうか判断できないので、
-このイディオムはそのまま残します。
-ユーザはこれを取り除くことができます。
-.PP
-perl では数値比較と文字列比較は区別されています。
-awk ではどちらにも同じ演算子が用いられ、
-実行時にどちらの比較を行うかが決定されます。
-この点で a2p は awk エミュレーションを完全には行おうとしません。
-その代わり、a2p はどちらの種類の比較を行おうとしているのか推測します。
-これはほとんどの場合正しいものですが、だまされることもあります。
-推測を行った部分には \*(L"#???\*(R" というコメントが付与されますので、
-それらの部分を調べ、中身をチェックすべきです。
-ユーザは、少なくとも一度は \-w スイッチ付きで perl を走らせるとよいでしょう。
-こうすると、eq を使うべきところで == を使っている場合に警告を受けます。
-.PP
-存在しない配列要素でも、単にそれを参照しただけで存在するようになるか、
-という点で、perl は awk の動作をエミュレートしようとしません。
-何らかの理由で、このメカニズムに依存して後続の for...in のために
-ヌルエントリを作成しようとする場合、
-perl ではヌルエントリは作成されません。
-.PP
-a2p が、(Fld1, Fld2, Fld3...) のような、変数のリストへの代入を行う行を
-分割する場合、
-上に述べた \-n オプションを用いて再度 a2p を走らせた方がいいかもしれません。
-これにより、スクリプト内のフィールドに名前を付けます。
-そうではなく、分割して配列に格納する場合、
-その分割はおそらくどこかでフィールド数を参照しているでしょう。
-.PP
-awk の exit ステートメントは必ずしも exit せず、
-END ブロックがあればそこへ処理が移ります。
-ある条件下で END ブロックをバイパスするような細工を END ブロックに
-仕掛けてある awk スクリプトは、
-END ブロック内の条件文を取り除き、perl スクリプトから直接 exit するように
-修正することで簡単化できます。
-.PP
-perl には 2 種類の配列、すなわち数値でインデックスされる配列と連想配列とが
-あります。
-通常、awk の配列は連想配列に変換されますが、
-もしそのインデックスが常に数値であるとわかったら、
-配列添字の {...} を [...] に変更できます。
-連想配列に対する繰り返し処理は関数 keys() を用いて行われますが、
-数値配列に対してはそうではありません。
-問題となっている配列の繰り返し操作を行うあらゆるループ構造を
-修正する必要があるかもしれません。
-.PP
-awk は起動時、OFMT の値が %.6g であると仮定しています。
-perl でこれに相当する変数 $# は、初期値として %.20g を持っています。
-OFMT のデフォルト値を用いる場合は $# を明示的に設定して下さい。
-.PP
-awk スクリプトでは、行の先頭付近で行分割 (split) 操作が暗黙的に
-繰り返されます。
-場合によっては、全体レコードをテストする何らかの条件文より下に
-これを移動させることができます。
-そうすることで無用な行分割処理を避けることができます。
-.PP
-美的理由から配列の基底 $[ を元々の 1 から perl でのデフォルトである 0 に
-変更したいこともあるでしょう。
-しかし、全ての配列添字式だけでなく、全ての substr() および index() 関数も
-適合するように修正しなければならないことを忘れないで下さい。
-.PP
-"# awk は馬鹿だからこうやって工夫してます" といった気の利いたコメントは、
-そのまま修正されずに渡されます。
-.PP
-awk スクリプトはしばしばシェルスクリプトに埋め込まれ、
-awk の入出力がパイプで接続されます。
-こういったシェルスクリプトのラッパも perl スクリプトに取り込める場合が
-かなりあります。
-perl なら入出力パイプを開始でき、
-awk が自分ではできなかった他の処理も行うことができるからです。
-.PP
-特殊変数 RSTART および RLENGTH を参照するスクリプトは、
-これらの変数を定義するパターン照合のスコープの中で参照されている限り、
-変数 $`, $&, $' を参照することで簡単化できる場合がかなりあります。
-.PP
-生成された perl スクリプトには、
-getline および print に関する awk の意味規則に対処するための
-サブルーチンが定義されている場合があります。
-a2p は通常、効率よりも正確さを選ぶからです。
-ほとんどの場合、ご丁寧に意味規則に対処してくれるサブルーチンを捨てて、
-もっと効率的なコードに書き換えることができます。
-.PP
-効率を上げるために、
-サブルーチンで最後に実行される return ステートメントから
-キーワード return を取り除くことができる場合があります。
-a2p は最も一般的な場合は見つけますが、
-稀にある埋め込まれたブロックを解析したりしません。
-.PP
-ARGV[0] は $ARGV0 に変換されますが、ARGV[n] は $ARGV[$n] に変換されます。
-ARGV[0] を含めて繰り返し処理を行おうとするループは、
-うまくいきません。
-.SH 環境変数
-a2p は環境変数を参照しません。
-.SH 作者
-Larry Wall <lwall@jpl-devvax.Jpl.Nasa.Gov>
-.SH 関連ファイル
-.SH 関連項目
-perl perl コンパイラ/インタプリタ
-.br
-s2p sed から perl へのトランスレータ
-.SH 診断
-.SH バグ
-実行時にオペランドを調べることで、文字列演算か数値演算かの選択で awk の
-エミュレーションを行うことは可能でしょうが、
-プログラムは肥大し、非効率的になるでしょう。
-なお、a2p の推測はほとんど常に正しく行われます。
-.PP
-awk 文法ツリー用の領域は現在のところ静的に確保しており、
-不足する可能性があります。
-.rn }` ''