Here goes :)(hopefully you'll see what i'm trying to say)
"nah, you gotta control the users path. Lead them by the nose or they will get it all wrong!". This would mean a rewrite to allow each run_mode to pass the user directly to one and only one run mode for the next phase.
I personally don't know what your friend is talking about (control the path?). As for rewriting each run_more to apss the user ... how are you storing the session (form) data? If it's a single form submit/validation cycle, one run mode is fine (present form, if validate, do whatever, redirect to success page, else re-present form with some error messages).

You could have a separate run mode just for validation

present_form -> validate_form -> success -> present_form
but having a single run mode (present_validate) instaed of two would be just fine. If it gets more complext than present_validate (2 in 1), then you need to split it up.

If it's a set of forms (multiple pages to submit, you have to store the session on the server), then a group of run modes is reccomended (each successfull submit leading to the next form/run_mode).

One of my questions is this: should run-modes be kept should and simple perhaps handling only a part of a sungle site function? For example, for an administrator to select and view user profiles, should the saearch, select, view and edit each be a separate run_mode or is it, in your opinion, okay to combine them into one run_mode?
I would say that's not ok. You're basically going against the design methodology behind CGI::Applicaton (read the "USAGE EXAMPLE" in the docs). Stick to one operation per run mode (it easier to think about it if you use templates. You basically have 1 template for every run mode. If you ever find yourself using more than 1 template, and keep in mind i'm not talking about includes, but two distinct templates for one run mode, you need to split that run mode into two).

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.


In reply to Re: CGI::Application, have I made a big mistake. by PodMaster
in thread CGI::Application, have I made a big mistake. by jdtoronto

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.