モジュール関連もここでいいのかな

Expect.pmを使ってsshでログインするときにキーを保存するか聞いてくる場合、
既に保存しててそのままパスワードの入力に移行するとき、
何かしらの理由でタイムアウトしたときでsendの内容を分けたいんだけど
どうやって分岐させればいいか分からない。if文でやろうかと思ったけど

if($exp -> expect($timeout , $(yes/no)?)){
  send("yes\n");
}

と書くとマッチしないときでもtimeoutまで待たされるしtimeout書かないと次々に入力されて
使い物にならないしsleepだとマッチした場合も無駄に待つ羽目になるしスマートな書き方が思いつかない。

通常のexpectみたいに

expect "assword: " {send "password\n"} \
     "(yes/no)? " {send "yes\n";expect "assword: "; send "password\n"} \
     timeout { 〜 }

といった感じでexpectの中だけでプロンプトの内容毎にsendでの出力を分けたりできないの?