perlでSymbol::gensymってのがあるのを知らなかった。 どうやら、ファイルを開くときなどに無名ハンドルを作りたいときなどに使用するようだ。 使い方は下記のような感じです。
foreach $filename (@names) {
    use Symbol;
    my $fh = gensym();
    open($fh, "/etc/$filename") || die "open /etc/$filename: $!";
    $file{$filename} = [ $i++, $fh ];
}
これで、多分使うとしたら、
print $file{foo}->[0] "example text";
とかで扱うのかな。 なるほど、今度使ってみよう。