PR

コールバック関数を実装するためのメモ

極端に言ったらアレやって、コレやって、やっぱ処理もどすわ。って感じなのがコールバック関数。
(進捗状態出すとか)

スポンサードリンク

いろいろ呼び出し方や、実行の方法があるのですが、手軽に単純に実装する方法をメモします。
もっと良い方法があったら教えてください。

実装例なので、これをコピペしても動作しないです。

◆呼び出し元

MyApp::dir(
DIR => ‘/var/www/trust/data/’, #必要なオプションとか
RCB => \&common, #コールバック関数を指定する
);

sub common{
・・・さむしんぐ・・・
return 1; #undefとか1とか返して、1ならテンポラリファイル削除とか
}

◆モジュールのほう

sub dir{
my %opt = @_; #\環境によってはmy($this, $opt)=@_;だっけ?とか
・・・さむしんぐ(だいたいループの中にいると思うけど)・・・

#コールバックを実行する $opt{RCB}();
my $ret = $opt{RCB}(“実行中の何かを渡しちゃうとか”);

#コールバックからの戻り値によってはテンポラリ消すとか
}

コメント