Thanks Josh and Paul. Looking at these solutions I think I'll stick
with the, [% tabidx = tabidx + 1 %] plus [% tabidx %] method I'm
currently using. Looking forward to TT3 and unable to take the time to
do your solutions.
Rod
--
Josh Rosenbaum wrote:
Roderick A. Anderson wrote:
Is there a method to increment a value and have it return that value?
I've been through the Badger Book but didn't quite see what I was
needing though MACRO seemed close. This is for a View for a Catalyst
based application if that makes a difference.
I'm looking to accomplish something line this.
[% tabidx = 81 %]
<input name="DoIt" tabindex="[% tabidx++ %]"
type="submit" />
<input name="TryIt" tabindex="[% tabidx++ %]"
type="submit" />
<input name="IGiveUp" tabindex="[% tabidx++ %]"
type="reset" />
It didn't work when I tried it. I have ended up doing this. ( It just
seems WRONG :-)
[% tabidx = 81 %]
<input name="DoIt" tabindex="[% tabidx %]"
type="submit" />
[% tabidx = tabidx + 1 %]
<input name="TryIt" tabindex="[% tabidx %]"
type="submit" />
[% tabidx = tabidx + 1 %]
<input name="IGiveUp" tabindex="[% tabidx %]"
type="reset" />
Rod,
I do not believe there is a way to do this, although you could do:
[% tabidx; tabidx = tabidx + 1 %]
Another idea might be to make tabidx a list ref, and then add a list
virtual method.
[% tabidx = [81] %]
[% tabidx.inc() %] <-- will return 81 for display, and increment the
value to 82
$Template::Stash::LIST_OPS->{ inc } = sub {
my $list = shift;
return $list->[0]++;
};
Might want to call that .pinc for "post increment" since you want it
done after the fact. A .inc() should really return an already
incremented value probably.
I would've suggested using a scalar here instead, but I don't think
scalars are passed by ref, so I don't think your value would ever be
updated.
-- Josh
_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates