####################################
#
#
# Perlプログラミング・レッスン
# 98.10.10
#
#
####################################
CGIおもちゃで作られたスクリプトの作成手順とポイントをまとめました。
1.まず最初にすることは、画面のイメージを紙に書くことです。
入力項目は何か、ボタンはどうするか、別の画面を呼ぶかなどです。
※作った本数が増えると、目的に応じて動作の近いスクリプトが見つかり
それを改造することによりだんだん早く完成することができるようになります・・・ですから いきなり
難しくせずに簡単なパターンを組み合わせるようにした方が良いでしょう。
2.次に紙に書いた画面に対して、机上で動作させてください・・・作りながら機能を拡張するよりは
最初に目的とする機能を意識しながら作った方が簡単だからです。
※ここでも自分のレベルにあった機能にすることが大事です、最初は1画面の表示のみ、次は
計算や条件を加え、なんとなくわかってきたら画面を増やしてみるというのはどうでしょう?
3.では、スクリプトを作りましょう
まず、2番の机上で動作させた機能を言葉に置き換えます、これが一番大事なことです
例えば、最初にこの画面を表示させ、次に変数1欄と変数2欄に数字を入力したら、
送信ボタンをクリックする、すると次の画面で変数1と2の加算結果を表示する・・・こんな感じです
ポイントとして
(1)入力項目は1つでも良い ・・・ 動作が完成すれば項目追加は簡単
(2)フォームボタンも最初は1つでも良い ・・・ これも仕組みがわかれば追加するのは簡単です
(3)自分にあった命令を使うこと ・・・ 例えば 1を加算するには a++ または a
= a + 1 が
ありますがぱっと見て動作が理解できる方を使うこと
(4)色、サイズ、デザイン等は一番最後で十分です
(5)コメントはできる限り付ける ・・・ 特にPERLはくせが出るのでコメントをつけないと自分でも
わからなくなることがありますよ
(6)途中でわからなったら、一旦そのスクリプトをコピーして保存しましょう。
こんがらがった糸のように無理に進めるとロジックが見えなくなりがちです、その時はわからなく
なったところまでのスクリプトをより以前に戻し、1つのパターンとして財産にしましょう。
4.1本の道が通ったら、あとは項目を追加したり、デザインをつけたりして完成させます。
独り言・・・この道16年の私は千本を超えています、ある程度の本数がたまると自分の財産になり
新規のプログラムでも似たものを捜し出し、コピーして作り直します。たまに新しいロジック
のものに出会うと新鮮な気持ちがします。
大切なことはいかにわかりやすくシンプルに作ることですが、シンプルすぎて愛想がないと
言われます・・・(^^;;
よく聞かれることに、コンピュータで何ができるの?というものがあります。
難しい説明はできませんので、私はこう答えます。
人と同じです、読む書く記憶する・・・
例えばあなたが住所録を作るとしましょう
その動作をコンピュータに置き換えれば、もうその処理はコンピュータで
できるようになります。
ここで人の動作を見てみましょう
最初に住所録を開きます、その前にそれを持ってくるということもしますしそれと
お正月に頂いた年賀状も使いますね・・・準備がそろったところで次の動作として
年賀状を1枚1枚めくりながら、住所録に対して新しく追加するのか、住所や電話番号を直すのかあるいは消してしまうか、年賀状と住所録を見比べながら何気なくペンを動かしていることでしょう。
途中で追加しようとしたら、住所録が一杯になってしまいました。
用意のいい人だったら、新しく買ってきた住所録に書くことでしょう、でも2冊もいらないと思う人は古い住所や住所不明で戻ってきた人の住所欄があったら消してそこに書き込むことをしませんか?
どちらをとるかはあなたの考え方次第です。
ここで最後の1枚も終わりました。お疲れさまでした住所録を閉じてしまって下さい。
さて、これをプログラミングしますと
1.最初に住所録を開きます・・・open 住所録ファイル となります
開く方式として、3つあります
(1)読むことのみで訂正したり削除することができない方式
(2)以前に登録してあったものを消して新規に登録する方式
(3) 〃 〃 の後に追加で登録する方式
どの方式を選ぶかは後にして、ここでは人が住所録を開くようにopen命令があるということです。
それから住所録にもお父さん用や子供用と分かれているようにコンピュータにもどの住所録を
openするかファイル名を指定します(ファイルとは台帳のことです)
2.次に、住所録を見ますよね・・・コンピュータでは見ることをread(読む)命令で行います。
読む方法として2つあります
(1)1件ずつ読み込む方法・・・これは1件ずつ読みながら処理をするパターンです
(2)全件を一括して読み込む方法・・・読んだ後に、1件ずつ処理をするパターンです
どの方法を選ぶかは後にして、ここでは人が住所録を見るようにread命令があるということです。
3.年賀状を読むと、住所録をめくって目的の人を捜し住所が変わっていないか調べますね
これを処理用の文章に直すと
年賀状を読んで、その名前が登録してある住所録の名前と一致したら次に住所が変わっていない
か比較して、変わっていたら年賀状の住所と置き換える
(1)まず、繰り返しながら処理をする場合にはいくつかの方法があります、どれを使うかは別にして
wihile、for、untilがあります、ファイルを読んで繰り返すのはwhileを良く使います
while (<ファイルハンドル>) { その名前が登録してある住所録の名前と一致したら次に住所が変わって
いないか比較して、変わっていたら年賀状の住所と置き換える }
(2)かっこの中を処理にすると
・その名前が登録してある住所録の名前と一致したら・・・このようになになにしたらという形になったら
if文を使います、
if (年賀状の名前 eq
登録してある住所録の名前) {
if (年賀状の住所 ne 登録してある住所録の住所) {
登録してある住所録の住所 = 年賀状の住所 }
}
4.最後まで見終わったら、住所録を閉じます。
このなになにするまでという言葉がでたら、while ( )
{ }の形になります。
閉じるというのは、close (ファイルハンドル) です。
※ファイルハンドルとは・・・ファイルに関する命令のときどのファイルに対して実行するか指示をするために
open命令の時、実ファイル名に対して処理用の名前(ファイルハンドル)を付け、
それ以降ではそのファイルハンドル名に対して処理を指示します。これにより
実ファイルが変更になっても修正個所が少しで済みます。
なんだかわかりやすい説明ではないような気がします、うちの子供にもお父さんの説明はへただからへんな
たとえはしないでねと言われます。
ここで言いたかったのは、プログラミングというのは一連の流れを文章化して(別に紙に書かなくても良い)
その言葉にあった命令を当てはめればいいということです。
それでは、CGIおもちゃ風PERL説明をはじめます・・・
・変数について
変数は中学校?のときに習う xとyのことでその値をいろいろ変えることにより処理も変化させることが
できます。(学校ではxとyには数字だけだったかもしれませんが、もう1つ文字もあります)
・念のため、数値とは 1 2 3 4のような整数、小数のことです、分数も使うことができますが割り算と見なされ
数値というより数式の扱いになります。
・文字には、アルファベットやカタカナ、漢字があります。半角、全角もOKですし、数字も文字として扱えます。
数字については例えば、1200をせんにひゃくと呼べば数になり、いちにーぜろぜろと呼べばなにかのコード
(4桁の文字)になるのと同じです。
ここまで・・・98.10.10現在