ちば様  (千葉 敬介様)
桑島様

 ちば様へのお礼が、個人宛になっていましたので、再掲します。
 また、桑島様からもご指摘をいただき、有り難うございました。
 すでにお礼の中(下の文)でも述べましたように、サブルーチンには、def..endが
利用できることは理解していますが、引数でデータ交換する(配列にすれば一文字で
すむわけですが、)が、すっきりせずに、面倒な印象があるからです。

 また、procの面白い使い方をご教示いただき勉強になりました。

==先に出したお礼状==

 早速、的確な回答をいただき、誠に有り難うございました。お陰様で明確に理解で
き、大変参考になりました。

 「グローバル変数はなるべく使わないほうがよい」という示唆があるので、ローカ
ル変数のスコープについて、例外として「ブロックだけは外部のスコープのローカル
変数にもアクセスできる。」となっていることから、サブルーチン代わりになると喜
んだところです。
 しかし、今変換しているプログラムでは、Proc を def ... endに変更すると、サ
ブルーチン内のほとんどの変数をグローバル変数に変えることになり、Perlと同じく
変数前にやたらと$をつける必要があり、見た目が綺麗でないので、あまり好きでな
いことや、後々にModuleに変換するときに、やや面倒かなと思い、可能な限りローカ
ル変数で済ませて置こうと考えました。
 ただし、Moduleにすると、引数を使って、Module間のデータ交換が必要になるの
で、計算時間にも悪影響があるのだろうかと素人ながら、気になっています。(本当
はどうなんでしょうか。)
 実際に、このModule化とグローバル変数との取り扱いをどうすれば、格好のよいプ
ログラムになるのかと思い悩んでいます。 

矢幡