サブルーチンを使う場面とは?

[上に] [前に] [次に]
1999/12/16(木) 01:32:32
Perl初心者の猫です。
素朴な疑問かも知れませんが、Perlの場合サブルーチンを作る必要は、必ずしもありませんよね?
似てはいるが、若干違う処理をする際に、サブルーチンを定義して、適当なところで呼び出す物だと思っています。
しかし、色々な所で配布されてるプログラムのコードを読むと、殆どサブルーチンの定義と呼び出しで成り立ってるように思います。
行を短く出来たり、変更が容易に出来る、というのは理解できるのですが、一度しか使わないコードもサブルーチンにされていたりします。
#ソースの見やすさ、書きやすさの為でしょうか?ただ単にCの影響なのかも知れませんが・・・どうなんでしょう?
そう言うのはインラインで書いた方が処理が早いように思うのですけど。
速度を気にするならCで書くと言われたらそれまで(^^;

というわけで、実際、どういう場面でサブルーチンを使うのが良いのでしょうか?
ついでにサブルーチンを使う事のメリット、デメリットを推測ではなく正確に知りたいので教えていただけると嬉しいです。
なんか、変な質問で申し訳ありません。

ふじ 1999/12/16(木) 02:09:49
# 「正確」かどうかわからないですが。私の個人の考えとして。

>サブルーチンを使う事のメリット、デメリット
メリット
長いスクリプトの場合、全体を見通し良く記述できる。
ネストが深くなりすぎると何がなんやらわからなくなるし。

コードの使い回しができる(この前書いたあのスクリプトからこれを持って来て...とか)

確実に動く小さい部品(サブルーチン)の組合せで構成すると、デバッグが楽。

#...上記、どれも同じ事を言ってる気が(^^;

デメリット
速度的に若干不利か。
# でも、気にする程のことじゃない気がしますけど。

> 一度しか使わないコードもサブルーチンに
それを他のスクリプトにも転用できるかも。
他のスクリプトで使ってたのをそのまま持って来てるかも。
#「車輪の再発明」はしない方がいいですよね。

1999/12/17(金) 01:43:39
[[解決]]
ふじさん、ありがとうございます。
やっぱり、一度しか使わないコードをサブルーチンにするのは、動作上の理由では無いんですね。
妙に疑問に思ってたので、聞いてみて良かったです。
感謝!

J.Naka 1999/12/17(金) 06:55:11
ちょいと一言。(書き込み自体が妥当でない状況にある私ですが(^^;)

サブルーチン初めプログラム構造・ソーススタイルをスピードオンリーつまり効率を最優先して考えると、私のようになりますよ(笑)
プログラムは破錠を避けるロジック(含む頭)が第一です。
変なスタイルが身に付くと、なかなかそこから脱却できませんです(TT)

[上に] [前に] [次に]