キッズプレート、パスタおかわり

プログラミングやデジモノについてあれこれ
--.--.-- --:--|カテゴリ:スポンサー広告| コメント(-)

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009.02.24 07:36|カテゴリ:Perlコメント(0)

Perlでリードオンリーな変数を使う


 Perlの何が良いっていいかげんなところ(w とまあこれは半分本気で半分冗談みたいなもんですが、そんないいかげんなPerlで何やらリードオンリーな変数が作れるというじゃないですか。
 リードオンリーってのは読んで字の如しで読み込みだけできて書き込みができないってことです。Perl内で変数に設定した後に「リードオンリーフラグ」なるものをon/offすることによって値が再度設定できない変数にすることができるそうな。

 つかうのは、
「Internals::SvREADONLY」
 っていうやつなんだけど、これからもう保育園に行かないとなので続きまた後で。

。。。てことで続きです。

 Perl 5.8以降、useせずともInternals::SvREADONLYなるものが使えるらしいです。「Sv」はスカラーバリューの略でまあ単純にスカラ変数をリードオンリーにしちゃうぞ、ということらしい。使い方はいたって簡単。
$TEST = 'TEST-DESU";
Internals::SvREADONRY($TEST,1);

 てなことをすると$TESTがリードオンリーになります。こうやってフラグ立てするとそれ以降で$TESTを書き換えようとするとエラーで落ちるようになります。まあ何に使うかと言えば使い道は個人的にはあまりないですが。。。

 オリジナルクラスのるコンスタントをリードオンリーにしておけるのはいいかもしれません。プロパティもリードオンリーにしておいてアクセッサでフラグのon/offを切り替えて設定するようにしていればいまどきな感じが醸し出せるかもしれませんね。私の場合は個人で使うスクリプトが多いので実用性重視で、モジュール内の変数もびしばし直接読み書きしてますが(汗 コードを複数人で共有するにはもっとここらへんをきちんと設計しなきゃなんだろうなあ。

 ちなみに一度リードオンリーにした変数のフラグをoffにするのはこれです。
Internals::SvREADONRY($TEST,0);

 何かの役に立つかもしれないので覚えておこうっと。
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

ひらくん Author:ひらくん
どもども、ひらんくんどす。
日々まったり過ごしております。
仕事はDTP関連のスプリクト&アプリケーション開発。
Follow happyscript on Twitter

ブログ内検索



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。