Sergey Martynoff wrote:
> I still see that regexp /^[_.]/ for
> identifying "private" hash items (in
'item' hash vmethod, '_dotop' and
> '_assign' methods) - I think three times is enough
for moving it to a
> separate method.
Good point, but we don't want to add another method call to
anything
happening in the stash. We would be adding a method call to
each
element of every dotop in every variable in every TT
template in the
world, and that adds up to a big hill of beans
I've just checked in a patch which defines a $PRIVATE
package variable
containing a regex to match. It effectively does the same
thing but
without a method call. It also allows you to undefine
$Template::Stash::PRIVATE if you want to disable these
checks (i.e. then
you can access _private or .hidden variables).
I've also patched the XS stash but in over an hour of
searching, I can't
find any document showing how to match a string against a
pre-compiled
regex from XS. So it hard-codes the search for '_' or
'.' as before.
However it does check to see if Template::Stash::PRIVATE is
defined or
not, effectively using it as a flag to enable/disable the
feature.
> Also, some vmethods (list 'sort' and 'nsort', hash
'item') still use complex
> constructs to access hash items. Few month ago I
proposed to use _dotop in
> all that cases for the uniformity of code (however,
this may decrease
> perfomance when sorting list of hashes).
Not sure what you mean by that. Feel free to send a patch
though and
I'll look it over.
> And, anyway Schwartzian Transform (converting to
lowercase) is redundant for
> 'nsort' vmethod
Yep, true.
> If you consider this notes to be reasonable, I can make
patches for all this
> things when I have a bit time
Sure thing.
A
_______________________________________________
templates mailing list
templates template-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
|