Question: I want to bind an action to two commands that will be done one after the other. I've tried the following syntax:

```
$g marker bind $point <Button-1> [list $table HighLightCell 1 [expr [lindex $value 1] + 3] \; __highlight_selected $table $sparam $eyes sparam_eyes $graph]

```

I've also tried few other variations, but none of them worked.

`$g` is a blt graph, and it handles binds like normal binds in Tk. What happens is that Tcl thinks that all the parameters are parameters for `$table HighLightCell` and doesn't interprate the `;` as the end of one command and start of a new command.

I can't use `{...}` syntax because I need to put variables in the commands, which I'm not able to do using `{...}`. How can I put 2 commands that will be done when the event happens, without creating a new proc that will call those commands?

Answer: 
Use `+` at the beginning of the next script to bind, like this:

```
bind . <KeyPress-a> "puts one"
bind . <KeyPress-a> "+ puts two"

```
The `list` command only ever constructs invokations of single commands. That's what it does (well, and building lists too but that doesn't matter so much here). You want to use two commands, so you should put the semicolon (or a newline) *outside* two `list` calls that generate the commands that are separated, like this:

```
$g marker bind $point <Button-1> [list \
        $table HighLightCell 1 [expr [lindex $value 1] + 3]
    ]\;[list \
        __highlight_selected $table $sparam $eyes sparam_eyes $graph]

```

However, I really advise using a small helper procedure at this point. It will save you much confusion in the long run.

```
proc DoSomeHighlighting {table value sparam eyes sparam_eyes graph} {
    $table HighLightCell 1 [expr {[lindex $value 1] + 3}]
    __highlight_selected $table $sparam $eyes sparam_eyes $graph
}

# Can be a number of lines of code in here, of course

$marker bind $point <1> [list DoSomeHighlighting $table $value $sparam $eyes $sparam_eyes $graph]

```

This becomes especially important once you decide that you've got to do more computing of values at runtime.