2007-03-20

use strictを導入してみた

use strict;

というものを知りました。
なんでも、Perlで、変数宣言を厳密にして、グローバル変数を禁止するためのおまじないだそうです。

このモジュール、あちこちのスクリプトでよく見かけるので調べてみたら、超有名かつ基本的なモジュールだそうです。(汗

404 Blog Not Found:perl - use strict; # and be happy

Perlで必須の記述 use strict と use warnings - Sakura scope

Perl の変数に関するちょっとした誤解と、動的な性質について : NDO::Weblog

Perlビギナーの皆様へ - 何を書くにもまず 'use strict'


strict プラグマこそが、我々のミスを見つけてくれる、プログラマーの強力な味方です。
「見通しの悪い複雑なスクリプト」を書いてしまう事への懸念は、すべてこの strict プラグマが晴らしてくれます。

どんなにコードを書くときにも、かならずコードの先頭で、

 use strict; 

と書いておきましょう。

そして、変数を作る際は、
my $hoge = 1;
というように、「スコープ (関数) 内でのみ有効な変数宣言」 をつけましょう。
こうすることで、少なくとも僕は後悔した事はありません。
幾度となく、助けてもらった思い出ばかりです。

Perl/CGI辞典 - 土井 毅さん著 - にて use strict が推奨されていない件について - iandeth.




なるほど。
よし、さっそく自分のスクリプトにも導入してみよう。

use strict;
…んがっ、エラー出まくり!!!
爆死。

…結局数時間かけて、変数全部にmyをつけて、関数間の変数の受け渡し(returnとか)をきっちり書いて、ライブラリをパッケージに置き換えたら解決しました。

これでPerl初級は卒業できたかな?

0 件のコメント:

Blog Archive