私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

No.732  Re[2]:転職所内蔵
発言者: moon
発言日: 2003 08/16 19:00
> if ($Fm{'mode'} eq 'change_menu') {require 'change_form.pl';&change_form }
> if ($Fm{'mode'} eq 'class_change') {require 'change_form.pl';&change_form }
> if ($Fm{'mode'} eq 'job_change') {require 'change_form.pl';&change_form }

に関連して、

> change_form.plを作成して、その中にsub change_formを作りました。sub change_formの一部↓
> if ($Fm{'mode'} eq 'class_change'){require 'class_change.pl';&class_change;}
> if ($Fm{'mode'} eq 'job_change') {require 'job_change.pl';&job_change;}
> if ($Fm{'mode'} eq 'change_menu') {require 'change_menu.pl';&change_menu;}

としているようですが手元の古いバージョンでは、
# ここから引用
  if ($Fm{'mode'} eq 'change_menu') { &change_form }
  if ($Fm{'mode'} eq 'class_change') { &action_form }
  if ($Fm{'mode'} eq 'job_change') { &action_form }
# ここまで引用
となっています。
なので、これに沿って改造したほうが問題が無いように思います。
具体的には、sub change_menuとclass_changeとjob_changeとchange_formを一つのplファイルにまとめ上記の&change_formや&action_formの前にrequireするだけ、にしておく。(どうせ転職などはあまり行われないので3つや4つに分割する効果はほとんど無いだろうし。)

> 問題の場所はclass_change.pl内の
> if ($urt) { if ($rt < $urt) { push (@msg,"クラスチェンジするにはRateが$urt以上必要です。"); return }}
> だと思うのですが(^^;
> returnの意味がよくわからないので、どこをどうすればいいのか…(;;

returnはサブルーチンを強制的に抜ける処理です。

# normal_actionが実行されない原因としては上記からいうとaction_formを実行していないから、だと思います。

▼関連発言

730:転職所内蔵 [masaki] 08/16 17:18
 └731:Re:転職所内蔵 [masaki] 08/16 17:21
  └732:Re[2]:転職所内蔵 [moon] 08/16 19:00
   └733:修正報告 [moon] 08/16 19:12
    └734:Re:修正報告 [masaki] 08/17 06:56<-last

Pass 保存


CGIROOM