Perl: 2007年3月アーカイブ

use strict, use warnings, -w, CGI::Carp   はてなブックマークに登録  

先日出会ったuse strict、だいぶ慣れました。
開発中のWEBアプリの一つに全面採用しました。
要は変数を使うときはmyをちゃんと付けろってことですか。

これはこれでいいとして、一方warningsまわりがよくわからん。

よくわからんので、自作CGIの冒頭に、

#!/usr/local/bin/perl -w ( -wスイッチ)
use warnings;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

と3つとも書いている。

この3つの違いがさっぱりわからん。(? ?)
とりあえずしばらくは3つとも書いておくとしよう。

CGI::CarpのwarningsToBrowser(1); の使い方がやっとわかった。
All Aboutにわかりやすい解説アリ。

さっそく使ってみる。

。。。が、
ヒアドキュメントの中にwarningsToBrowser(1)と書くと、ブラウザに"warningsToBrowser(1)"がそのまま表示されてしまった。

う~融通きかないのね(><)

[Perl] 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初級は卒業できたかな?

このアーカイブについて

このページには、2007年3月以降に書かれたブログ記事のうちPerlカテゴリに属しているものが含まれています。

前のアーカイブはPerl: 2006年9月です。

次のアーカイブはPerl: 2007年4月です。