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