型グロブは役に立つのか

Perl/変数、データ構造
上記のリンクはググった結果たまたま引っかかったのですが
フリー教科書WikiBooksというものがあるんですね。ちょっと気になるのでメモ。


型グロブは前々から存在自体は知っていたのですが
いまいち有用性がわからなかったので、一度も使ってきませんでした。
ただ、人様のソースでは意外とよく見ますよね・・・
スカラー、配列、ハッシュ、サブルーチン、ハンドルをまとめてコピーできるのが
売りなのでしょうか。制限つきのリファレンスみたいなもの?
という印象でした。


そんな中、今日も型グロブを使ったソースを見つけ
ついに調査を開始、上記のリンクにたどり着いたわけです。
このリンク先では非常に端的に説明してくれています。

これはかつてPerlにリファレンスがなかった頃、サブルーチンに引数を参照渡しするのに利用されていました。また、ファイルハンドルとフォーマットにはプレフィックスが存在しないので、これらを受け渡しする場合の唯一の手段でもありました。

for ( $i = 0; getline( *line ) != -1; $i++ ) {
print "line $i: $line";
}

sub getline {
local (*l) = @_;
return defined( $l = ) ? length( $l ) : -1;
}
現在ではリファレンスが利用できるので、型グロブを使う必要はありません。ファイルハンドルやフォーマットに関してもIOモジュールなどでオブジェクトとして扱うことができます。

いやー、納得。
ちなみに、ここでフォーマットという見慣れぬ用語が出てきたのでこれもチェック。
http://www.rfs.jp/sb/perl/02/11.html
これは知らなかった・・・!
まあ使いどころはあまりなさそうですけど
テスト用の出力を見やすいものにしたいときなど、多少は使えそう。