2006/05/13(土) [n年前の日記]
#1 [prog] _ファイル検索イテレータ Find::File::Iterator って便利かも? :: Drk7jp
こんなものがあったのか…。
と思ったけど、ActivePerlのドキュメントを見たらそれらしいものがなかったので、面倒だから File::Find で処理。<モノグサ。
…ん? サンプルを眺めたら、our と map なるものが。一体何だろ。
_perlのourに関すること - **ourについて
_vars.pm 探検
_strictプラグマ使用時における変数【全般】
なんだかよくわからんが、use vars qw( LIST ) とやらを使う代わりに、our を使える、ということなのかな。
と思ったけど、ActivePerlのドキュメントを見たらそれらしいものがなかったので、面倒だから File::Find で処理。<モノグサ。
…ん? サンプルを眺めたら、our と map なるものが。一体何だろ。
◎ _our宣言 :
our宣言は、グローバル変数をパッケージ名で修飾せず使用できるようにします。our宣言はmy宣言と似ていますが、新たにローカル変数を生成するかわりに、カレントパッケージに所属するグローバル変数をパッケージ修飾なしで使えるようにしてくれます。our宣言の有効範囲は、my宣言と同じです。つまり、ourによって宣言した変数は、宣言が置かれているブロック、eval、またはファ イルの末尾まで有効です。
_perlのourに関すること - **ourについて
「my の」という表現はピンとこないのですが、グローバル変数の定義ってことでいいと思います。our 宣言した変数は、確かに前の値をずっと保持してます。僕は use vars qw() の代わりに使ってます。perl にビルトインされてるぶんだけ、vars を使うより our のほうが速いんじゃないかな。僕は困った経験はないですが、package との兼ね合いが vars で宣言したときとは違うかもしれません。それから vars で宣言したときも同じですが、クロージャの対象にならないので注意が必要です。これはよく引っ掛かります。
_vars.pm 探検
Env.pm を調べていたときに use vars qw( LIST ) という表現が出てきました。use vars は組み込み関数ではなく、use で vars.pm モジュールを読み込んでいるだけなのです。vars より
_strictプラグマ使用時における変数【全般】
use stirct 'vars';
とした場合、或いは単に
use strict;
とした場合、グローバル変数は全てパッケージ名で完全に修飾しなければなりません。Perl Tips より
なんだかよくわからんが、use vars qw( LIST ) とやらを使う代わりに、our を使える、ということなのかな。
◎ _Perl Tips - loop処理 :
[ ツッコむ ]
以上です。