Subbu Meiyappan wrote:
[%# ---------- file1.tt <http://file1.tt/> ----------%]
[% DEFAULT MY_BOOL_D0 = 0,
      MY_BOOL_D1 = 1,
      MY_INT_D10   = 10 %]
Print Values:
MY_BOOL_D0 = $MY_BOOL_D0
MY_BOOL_D1 = $MY_BOOL_D1
MY_BOOL_D10 = $MY_BOOL_D10
[%# ---- End of file1.tt <http://file1.tt/> --------- %]
i.e the boolean values that had a default of 1 could not be overridden from the calling template. All other values/types were overridable. Any ideas?

From the docs:
"The DEFAULT directive is similar to SET but only updates variables that are currently 
undefined or have no "true" value (in the Perl sense)."
http://www.template-toolkit.org/docs/plain/Manual/Directives.html

The part to note there is the last part about having no "true" value (in the 
Perl sense). Which means, '', 0 and undef.

The reason is that default is doing something like this:

if (!passed_in_MY_BOOL_D1){
 MY_BOOL_D1 = default_MY_BOOL_D1
}

Since the ! evaluates to true when passed_in_MY_BOOL_D1 is 0, you would see the behavior you saw.
-- Josh

_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to