![]() |
カレッヂ |
質問者 宇宙のステルヴィア
投稿日 11/20(木) 12:19:33
いままで、多数のスクリプトを作成してきましたがひとつのことに気づいたんです。 どのスクリプトにも共通しているサブツーチンがあることに。 スクリプト一つ一つにそのサブルーチンを設置していると、 デバッグなどあとで見るときが大変。 そこで、共通するサブルーチンをひとまとめにしたファイルを作成して、 おたがい共有してゆくことを。 早速作成しようとしたら疑問が浮かび上がりました。 ①このようなファイルには「ライブラリ・パッケージ・モジュール」の3種あるそうですが、 その違いとは? ②ライブラリ・パッケージ・モジュール」3種のメリットとデメリットとは? ②作成したスクリプトの変数をファイル(以後ライブラリといいます)にどう渡せばよいか? これらが詳しくわかればかなり効率よく作成ができると思います。 「ライブラリ・パッケージ・モジュール」の3種について教えてくださいませんが?
プロバイダ参照:http://www.mirai.comm.to/ |
回答者 やまだ
[削除]
投稿日 11/20(木) 20:52:51
perlでは、ライブラリはsuffixが.plのものパッケージは.pmのsuffixのもので、 ライブラリはrequireとして使って単にファイルにあるプログラムをロードするだけ。 パッケージはuseとして使って、オブジェクトを使ったプログラムを作れる。解析されたとき に読み込まれる。 で、perlのモジュールは、ライブラリ、パッケージをまとめた言い方。 CPANで通常使っているのは、もちろんpackage化されていて、とてもオブジェクト指向なプログラム。 |
回答者 やまだ
[削除]
投稿日 11/20(木) 21:05:07
>②作成したスクリプトの変数をファイル(以後ライブラリといいます)にどう渡せばよいか? packageと定義されている名前(PACKAGE)とそのファイル名のprefixを使って、 my $pkg_val=$PACKAGE::pkg_val; や、 &PACKAGE::pkg_func($pkg_val); とか使えますし、Exporterを使って、輸入(接頭のPACKAGE使わない)もできます。 Oreillyとか読んでみてください。 |
質問者 宇宙のステルヴィア
[削除]
投稿日 11/21(金) 00:36:47
&PACKAGE::pkg_func($pkg_val); 複数の変数を渡す場合は、 &PACKAGE::pkg_func($pkg_val,$pkg_val2); となるのでしょうか? |
質問者 宇宙のステルヴィア
[削除]
投稿日 2003/12/7(日) 14:31:45
調べなおしてみます。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |