On Tue, Jun 05, 2001 at 05:32:12PM -0400, Goodger, David wrote: > One more question: Are there some newbie examples or docs that I could get > my hands on? Thanks again. There is quxiote/demo/pages.ptl but that sucks dead bunnies through a straw. The good news is that PTL is almost exactly like Python. The only difference is that inside a template (what is a function in Python) the result of expressions get saved as the result of that template. Here is one example: template hello(): "hello world" # this is an expression, normally Python # would discard this value but PTL # appends it to the output for this # template and returns it at the end print hello() # prints "hello" Here is a template that does the same as the last one but illustrations a few more rules: template hello2(): greeting = "hello world" # statement, no PTL output None # an expression, but None gets special treatment, no output # everything else gets str() called on it and gets # appended to the output greeting # expression, this is included in the result Here is a template that does the same as hello(): template hello3(): hello() Perhaps we want to print a greeting a few more times: template ten_hellos(): for i in range(10): hello() "\n" # PTL does not add any whitespace Its easy to pass arguments to templates: template many_hellos(n): for i in range(n): hello(); "\n" or to have conditional logic: template international_hello(language): if language == "english": "hello" elif language == "french": "bonjour" else: raise ValueError, "I don't speak %s" % language As you can see, it's simple to use exceptions with PTL as well. I keep this little function in my PYTHONSTARTUP file: def ptl(): from quixote import imphooks imphooks.install() that's useful if I want to interactively play with a PTL module. Hope that helps. Neil -- "visiting malicious web sites is not real exploit scenario" -- secure@microsoft.com