that's what I figured. You don't need the square brackets if the command is on its own. what's happening is this:
- Tcl reads the line
- Tcl scans through the line looking for square brackets
- It evaluates the stuff in the square brackets
- The result of the evaluation is substituted back in the line
- the line of code is then executed.
so in your code, Tcl reads [page_log ...]. Executes page_log, which returns nothing. Then tcl tries to execute that return of nothing.
If you drop the square brackets, it'll work.