I understand that REQUEST.set()/dtml-set is to be used sparingly in general, but in some situations there is no alternative. And it appears to be a widely used Zope(2) idiom as well.
Exactly. dtml-set is just a user-friendly replacement for those horrible <dtml-call "REQUEST.set(..)"> constructs.
Hmm. REQUEST.set is considered evil (it pre-dates dtml-let and other approaches by a long shot), which is why I'm a bit hard-headed about this :) The hope was always that dtml-let would cause REQUEST.set(...) to die out, because it is way too easy for people to get into trouble with REQUEST.set(). The hard-headed part of me would rather that people *have* to type something ugly, as a reminder that they are doing something ugly :^) Having a nice spelling can make it so nice that you don't realize at all that you're walking all over request variables (especially for newbies). That is why I wanted to avoid using REQUEST. I understand your point of view, but we always have to balance the needs of the experienced Zope hacker against the infamous 'steep learning curve' problem that newbies run into. We are trying to be more careful about putting things in the core that have behavior that might surprise people or otherwise make their experience confusing. To me, that is the main decision to be made here. Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com