~~NOTOC~~ ---json { "title":"clear()", "description":"入力バッファを消去します" } --- \\ ====== clear() ======
==== 説明 ==== 入力バッファを消去します。\\ ==== 構文 ====~~DISCUSSION~~clear()==== 引数 ==== ありません。\\ ==== 返り値 ==== ありません。\\ ==== 備考 ==== 入力バッファはライン入力モードが有効のときに機能します。\\ 入力バッファは自動的に消去されませんが、改行(Enter)キーが入力されると消去されます。\\ 改行による自動消去は改行が入力されても入力バッファの内容はすぐには消去されず、一旦、改行フラグがセットされ、 その後、関数keyin()を呼び出すことでバッファが消去されます。そして、取得(入力)した文字がバッファに取り込まれます。\\ ==== 用例 ==== ESCまたはCtrl+Cが押されたときにバッファ消去する場合は次のようにします。\\sub key_input { my $self = shift; my $in = $self->from_node()->{'__Input'}; # 入力制御オブジェクト $in->keyin(); # 受信バッファから1文字を取り出し入力バッファに取り込む my $inkey = $in->inkey(); # 取り出した文字を得る if (($inkey eq "\x03") || ($inkey eq "\x1b") ) { # ESC(\x1b), Ctrl+C(\x03)が押されたら $in->clear(); # 入力バッファを消去 }このコードはアプリケーション処理ハンドラ(AppWork)に登録し、サーバ処理イベントに連動して呼び出されることで、受信バッファから1文字ずつ取り出し、特定の文字を取得したときに本関数を呼び出して入力バッファを消去します。それ以外の文字は入力バッファの上限に達するまで取り込み続けます。