agianni has asked for the wisdom of the Perl Monks concerning the following question:
In our Web application architecture, I'm changing a component to use objects where data structures were previously used. For backwards compatibility, I'm using Contextual::Return, which works nicely until I get to the templates. We're using Template Toolkit for our presentation layer and I'm running into trouble when the data in question comes into play. I have a method in my controller logic that uses Contextual::Return to return either a hashref or an object depending on context. Unfortunately, it seems that Template Toolkit always tries to evaluate the results of the method call as an object first, so I can never seem to access the hash.
My understanding is that Template Toolkit attempts to evaluate the return value of the dot operator in order, and I'm assuming that it tries the object first, which Contextual::Return happily provides.
The upshot is that I would like to be able to do this:
orfoo.get_thing # the get_thing method
foo.bar.baz.thing # the bar => { baz => 'thing' } data structure
But the second example gives me an error along the lines of:
undef error - Can't call method 'bar' on OBJREF value returned by My::Module
Any suggestions?
perl -e 'split//,q{john hurl, pest caretaker}and(map{print @_[$_]}(joi +n(q{},map{sprintf(qq{%010u},$_)}(2**2*307*4993,5*101*641*5261,7*59*79 +*36997,13*17*71*45131,3**2*67*89*167*181))=~/\d{2}/g));'
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Forcing context of dot operator in Template Toolkit
by merlyn (Sage) on Oct 24, 2007 at 15:38 UTC | |
by agianni (Hermit) on Oct 24, 2007 at 16:36 UTC | |
|
Re: Forcing context of dot operator in Template Toolkit
by agianni (Hermit) on Oct 26, 2007 at 19:11 UTC |