I have not used Catalyst, but its stash sounds much like POE's heap, so my experience with POE might be useful here. I use the heap for things that I will need later. Later might mean the next state, or it might mean 15 states after this one. Obviously, in the face of this type of uncertainty, argument passing isn't going to work. On the other hand, when I want to pass arguments to states, I pass arguments.
I suggest you approach Catalyst the same way. Use the stash for long term storage, and argument passing for, well, argument passing. If some modules use the stash as an argument passing mechanism, that's unfortunate. I wouldn't base my decision whether to use it on that alone, though. Just do things the way you feel comfortable.
Update: as per jest's reply, my analogy is obviously flawed. Kindly ignore my post. :-)
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link
or How to display code and escape characters
are good places to start.