mond-tech [perl]AnyEvent::Util::guard - 微妙な子 忍者ブログ
焼肉屋さんが大好きです。いや、そうでも無い。 たぷたぷになってきてピンチです。
19
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

変数が開放されたタイミングで走る関数を定義する事が出来る。
AnyEventのサンプルコード見てもらえれば解かる通り、これを用いたコードは、
使い手側に、一見、使いもしない謎の変数確保を強要されるので、気持ち悪い事になる。
普通には使わない方が良いと思う。DESTROY、MooseならDEMOLISHでやれば良い。

#!/usr/bin/perl

use AnyEvent::Util;

my $guard1 = create_guard(1);
my $guard3 = hoge();

{
my $guard4 = create_guard(4);
}

undef $guard3;
undef $guard1;

sub hoge {
my $guard2 = create_guard(2);
return create_guard(3);
}

sub create_guard {
my ($no) = @_;
return AnyEvent::Util::guard {
warn "Destroy $no";
};
}

2, 4, 3, 1の順でクロージャが呼ばれる。
PR
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback URL
Copyright c mond-tech All Rights Reserved
忍者ブログ / [PR]
にほんブログ村 IT技術ブログ Webサイト構築へ