tokuhirom's Blog

こんな標準モジュールあったんですねシリーズ - 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);
   # ...
}

と書けるというわけ。

今時つかう必要があるケースはないかとおもいます。