[Catalyst] does detach cancel forward
Steve Rippl
rippls at woodlandschools.org
Sat Nov 7 23:44:28 GMT 2009
On Sat, 2009-11-07 at 15:30 -0800, Andrew Rodland wrote:
> On Saturday 07 November 2009 01:08:33 pm Steve Rippl wrote:
> > it's just that I had started thinking
> > in terms of "nested" flow control because that's what I wanted
> (wishful
> > thinking...). I thought perhaps each forward created a separate
> > nest/level I could detach out of and previous forwards were
> > "remembered", but obviously this isn't the case.
>
> No, this *is* the case, 100%. Forward is nothing more than a function
> call, so
> you can nest it and you get a call stack. It's just that, as I pointed
> out,
> detach throws an extension that unwinds that whole stack.
>
Sorry I wasn't clear, I got that it worked that way with forward, what
threw me was I didn't assume that detach unwound the whole stack (until
I saw it behaving that way). But if I put use eval{$c->forward...) as
Bill suggested then a detach within that gets me back to where I want to
be. I could probably rework things and remove the detaches I have in
there and just rely on the appropriate forwards, but the eval{} is a
quick solution.
Thanks for clarifying...
More information about the Catalyst
mailing list