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 件のコメント:
コメントを投稿