local *FH; open FH, $filename; って何?

オライリーのCGIプログラミングを読んでいるのですが、 p309にで.. - 人力検索はてなが参考になったので、自分用にメモ。


要は、「my FH」とか「local FH」といったことができない(ベアワードを許さない)から「local *FH」と型グロブを使うしかないらしい(結果として、無関係な $FH , @FH , %FH も道連れになる)。


現在では、

local *FH;
open *FH, $file

の代わりに、以下のように、未定義の変数を利用して無名の型グロブを自動生成させることができるらしい。(参考:ラクダ本 第3版 p.287)

my $fh;
open $fh, $file