表紙 | 新規 | 編集 | 編集 | 差分 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

main関数 - YukiWikiベースのPonyWikiのソースを読んでみる その02

YukiWikiベースのPonyWikiのソースを読んでみる その02

変数等の設定項目を抜けると&main関数が呼ばれ終了します。

##############################
# &test_convert;
&main;
exit(0);
##############################

main関数では何を行っているのかと言うと、各項目の初期化を行い引数に応じてそれぞれの処理を呼び出します。

&{$command_do{$form{mycmd}}};が何をやっているかと言えば、$command_do{}のハッシュに対して、$form{mycmd}をキーに読み込んだ結果を関数名として実行しています。

例えばCGIへの引数にmycmd=editがある場合、引数は%formに保存されるので$form{mycmd}の値はeditになります。それをキーに%command_doを読むと($command_do{'edit'}すると)、&do_editのポインタが渡され処理が実行されるという流れのはずです。

sub main {
    &init_resource;
    &open_db;
    &init_form;
    &init_plugin;
    if (&is_trackback) {
        &response_trackback;
    } elsif ($command_do{$form{mycmd}}) {
        &{$command_do{$form{mycmd}}};
    } else {
        &do_[[FrontPage]];
    }
    &close_db;
}

''TrackBack'' - http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi/main%b4%d8%bf%f4

先頭へ