[kansaipm] Privateなサブルーチン

Yasushi Nakajima sey at jkc.co.jp
Mon Feb 4 00:50:28 CST 2002


 モジュールを書くとき、プライベートな変数はファイルスコープのmyかクロー
ジャでよいのですが、プライベートなサブルーチンを作りたいときに困ります。
みなさんはどうされていますか?

 例えば、クラスモジュールで、外部から使うためのメソッドはよいとして、そ
の下請けのプライベートなサブルーチンをいくつか作ることも多いと思います。
そういうサブルーチンもメソッドとして呼べてしまうのが嫌だなぁと思ったこと
はないでしょうか。

	※そもそも、メソッドとして呼ばれるように作っていないサブルーチン
	  をメソッドとして呼べてしまうPerlの仕組みはちょっと困ったものだ
	  と思っているのですが、まぁそれはまた別の話として。

 週末につらつら考えていて、ふと思いついて変なモジュールを作ってしまいま
した。Private.pmといいます。

  package Foo;
  use Private;
  hide Private;
  ...

と書くだけで、名前がアンダースコアで始まる変数やサブルーチンが、このモジュー
ルをuseしたスクリプトから使えなくなります。(名前は指定もできます。)

 まだ作ったばかりで実用になるかどうかもわかりませんが、興味のある方はちょっ
と使ってみてください。まだCPANにはあげてません。

・説明書…http://hp1.jonex.ne.jp/~nakajima.yasushi/modules/Private.jp.html
・アーカイブ…http://hp1.jonex.ne.jp/~nakajima.yasushi/archives/Private-0.01.tar.gz

 perl Makefile.PL; make; make install; でもインストールできますが、実体
はPrivate.pm一つだけなので、このファイルを@INCのどこかのディレクトリに入
れるだけでOKです。

中島 靖




More information about the Kansai-pm mailing list