読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

Perl

別のプログラマが書いたコードをリファクタリングしていて気になった(というかハマった)ことがひとつ。


これはDamian先生のベスプラにも書いてあるのですが、裸のファイルハンドルはもうやめましょう( "Don't use bareword filehandles" の項)。


なぜかというと、もちろんベスプラからのパクリなのですが、ファイルハンドルのGLOBというのはpackageレベルでグローバルなので、INとかOUTとかFILEとか、そういう名前を付けるとコードの他の部分と衝突する可能性があるわけです。

これは use した他のパッケージから import されたシンボルにも言えるので、さらに質が悪いのです。


普通にコードを書いていれば、そもそも同時に複数のファイルハンドルをオープンすること自体、あまりうまくない設計だと思うのですが、それはまぁケースバイケースでしょうか。


そして、上記の「きちんとした」理由の他に、

ファイルハンドルは大文字を使うものだという習慣がある
      ↓
大文字の識別子は読みにくい
      ↓
短い名前にしようとする
      ↓
結局、INとかOUTとかFILEとかいう名前になってアボーン

という負の連鎖があるのではないかと予想中。

Perlベストプラクティス Perl Best Practices

【広告】