こんな標準モジュールあったんですねシリーズ - SelectSaver
RAIIパターンを利用し、select $fh したものをスコープぬける時点でもどすというためだけのモジュール。select(2) するためのモジュールではないことに注意。
use Scope::Guard;
{
my $guard = Scope::Guard->new(sub { select STDOUT });
select $fh;
# ...
}
とおなじことが
use SelectSaver;
{
my $guard = SelectSaver->new($fh);
# ...
}
と書けるというわけ。
今時つかう必要があるケースはないかとおもいます。
Published: 2010-02-11(Thu) 14:38