こんな標準モジュールあったんですねシリーズ - 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); # ... }
と書けるというわけ。
今時つかう必要があるケースはないかとおもいます。