I'm glad you sent these emails before I "upgraded," this will definitely break my application as well.
On Thu, Dec 15, 2011 at 12:02 PM, Assaf Gordon <[email protected]> wrote: > More details: > > Assaf Gordon wrote, On 12/15/2011 02:18 PM: >> Hello, >> >> I have one (or more) calls to "template" to create the email text. >> and the last "template" creates the HTML page. >> >> [...] >> >> With Dancer version 1.3079_3, it worked perfectly. >> After upgrading to 1.3090, the result of the first template is always >> returned to the user - what changed ? any ideas/suggestions are welcomed. >> > > It seems now that a call to "template" immediately terminates the route's > handling code - no code is executed after calling template (it's not just > "return" because it exits multiple function calls"). > > Example: > ============== > sub foo > { > print STDERR "foo - start\n"; > my $text = template("dummy", {} ); > print STDERR "foo - done\n"; > } > > sub bar > { > print STDERR "bar - start\n"; > foo(); > print STDERR "bar - done\n"; > } > > get '/' => sub { > print STDERR "before bar\n"; > bar(); > print STDERR "after bar\n"; > > return template("index.tt", {} ); > }; > ================== > > prints "bar-start" and "foo-start" but never "foo-done" and "bar-done" . > > Using "git bisect" (if I used it correctly), this is the first bad commit: > ======== > cfda458efb1e6458a25c57469d95cf25b2ec7f75 is the first bad commit > commit cfda458efb1e6458a25c57469d95cf25b2ec7f75 > Author: Damien Krotkine <[email protected]> > Date: Fri Oct 7 11:32:07 2011 +0200 > > pass, redirect, forward, halt, send_error, send_file, template now > intterupt route workflows (no need to return) > > :040000 040000 8911d9022331792a8a49c00d8eb758bb6d424f7c > a958def44e6f1e764029d9bd27403a1b5cda3248 M lib > :040000 040000 47f431b5e310a8870ced9665964088c621a900d8 > d708491c4379283a9286f05862ef45b84a2772a1 M t > ======== > > (hehe, after reading the commit message, it's kind of obvious...) . > > > In any case - is this behavior going to be permanent ? > Meaning: "template" can only be used once, and must be the last statement ? > I can see why it makes sense for "pass", "direct", "send_error" etc. (and > probably for most use cases of "template") - but there are exception, like in > my case... > > thanks, > -gordon > > _______________________________________________ > Dancer-users mailing list > [email protected] > http://www.backup-manager.org/cgi-bin/listinfo/dancer-users _______________________________________________ Dancer-users mailing list [email protected] http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
