Perlで大まかなサンプルを作ってみました。
作っていくうちにどんどんくずれていってしまいますがf^^;

紹介

宣言

処理

出力

って流れを意識して一気に流す方が読みやすいですね。
あちこち飛んだり、複数の処理を織り交ぜ出すとスパゲティーかが進んでいくので、
簡潔に、こじんまりまとめられることを心がけています。

#!/usr/bin/perl

# =================================================================== 
# CGI名称
# ヴァージョン
# 作成日
# 作者
# 連絡先(メールアドレス・サイトアドレス等)
# =================================================================== 

# ===ヘッダー指定部分===

#モジュールの説明
use ○○○
use CGI;

#参照ファイルの説明
require ○○○

# ===変数の作成===
#CGIクエリ
$q = new CGI;

#データのカウント
$Count = 0;

#出力データの作成
$strHTML = '';

#フォームの復元
@FormKeys = $q->param();
foreach(@FormKeys){
	$FORM{$_} = $q->param($_);
}
# 注)この方法だとリストとして取得できない。

#表示画面の分岐
if(FORM{'MODE'} eq 'INPUT'){
	&INPUTHTML();
}elsif(FORM{'MODE'} eq 'OUTPUT'){
	&OUTPUTHTML();
}

&ERRORHTML();

exit;

#これ以降、関数の定義領域

#入力画面の出力
sub INPUTHTML{
print <<END;
content-type: text/html

<html>
<body>入力画面ですよぉ</body>
</html>
END
exit;
}