68user's page 掲示板

Prev< No. 1205> Next  [最新発言に戻る] [過去ログ一覧]
No. 1205 # 68user 2000/09/29 (金) 03:12:26
Perl/Tk で何かアクションがあったときの動作を記述する関数
    sub pushed {
        print "ボタンが押されました\n";
    }
    $top->Button(
        -text => 'Push me',
        -command => \&pushed,
    )->pack(-side => 'left');
とか、シグナルハンドラ、たとえば SIGALRM による
タイムアウトが起こったときの動作を記述する関数
    sub signal_handler {
        print "1秒待ちましたが、入力がありませんでした\n";
        alarm(1);
    }
    $SIG{ALRM}=\&signal_handler;
    alarm(1);
    $buf = <STDIN>;
などをコールバック関数といいます。

後者は、より実践的に書けば
    http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=889
てな感じです。

なお、関数へのリファレンスを使わず、$SIG{ALRM}=sub {...} などと
無名関数を使ってコールバックを設定することもできます。

Prev< No. 1205> Next  [最新発言に戻る] [過去ログ一覧]