• ベストアンサー

自分で定義した関数をすぐに使いたい

自分で定義した関数を最初から実装されているabs()やsqrt()のように何もせず(呼び出さずに)使用することはできないのでしょうか。 現在,"C://Perl/function/~.pl"といったようにfunctionという名前のフォルダに自分で作成した関数を保存しています。そしてその関数を使うときには, require("C://Perl/function/var.pl") &パッケージ名::サブルーチン名(引数); などとして使用していますが,呼び出す関数が1つ2つなら良いですが統計学に関する関数がないためほとんど自分で定義したものをつかっています。そうすると使用したい関数が多くなるほど,呼び出す手間が多くなってしまうのですが何か良い手段はないものでしょうか(モジュールを作成してもそれほど手間が省けるようにも思えないのですが、、、)。

  • backs
  • お礼率85% (564/660)
  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#25358
noname#25358
回答No.1

 var.pl の中に全ての関数を一緒くたに格納しておくことはできないのでしょうか?

backs
質問者

お礼

回答ありがとうございます。 1つのファイルの中にいくつもの関数をまとめて保存しておけば,そのファイルを読んで複数の関数が使えたのですね。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

それぞれの関数をエクスポートするモジュールを作成して、 そこで読み込む(または、AUTOLOAD で読み込むようにしておく)と use MyLib ; 一発でいいんじゃないかと

backs
質問者

お礼

なるほど,そのような手段もあったわけですか。とりあえずはNo.1さんの教えていただいた方法でやってみようとも思いますが,もっと関数が増えてきたらこの方法を試してみようと思います。ありがとうございました。

関連するQ&A

  • モジュールに定義した関数の実行

    sample.pmに定義したhello関数をmain.plから呼び出したいと思っています。(sample.pmとmain.plは同じディレクトリに存在)下記のように書いてみたのですが実行したところ以下のようなエラーが出てしまいました。これはどういう対応をすればよろしいのでしょうか? Can't locate sample.pm in @INC (you may need to install the sample module) (@INC contains: C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at c:\Perl_prj\main.pl line 2. (main.pl) require 'sample.pm'; hello(); (sample.pm) sub hello { print 'hello'; } 1;

  • 関数定義での変数について

    Perl/CGIより移行してきた者です。 この度、サブルーチン(PHPで言う関数定義)にて疑問があります。 当方、PHP5を利用しています。 Perl/CGIでは関数外で定義した変数も利用できたかと思うのですが、PHPでは利用できますか? 簡単なスクリプトでテストしたら表示されなく頭を悩ませています。 以下コードになります。 <?php $prints ="aaa"; $printss ="bbb"; function check3(){ print "$prints"; print "$printss"; } check3(); ?> Perl/CGIですと $test = "aaa"; &print(); sub print { print "$test"; } でもばっちり表示されたかと思うのですが。 伝わりにくいかと思いますが、ご存知の方宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 関数の定義の仕方

    関数の定義の仕方についてなのですが、 関数名 = function(){} と function 関数名(){} ではどのように処理がかわってくるのですか? 本当に簡単なことも分からなくてすいませんが、 本当に分からなくて困っています。 分かる方がいらっしゃいましたら、なにとぞ教えてください。 よろしくおねがいいたします。

    • ベストアンサー
    • Flash
  • 外部ファイルの関数を使うには?

    phpで include_once('okok'); なら、そこで定義した関数や変数は使えるのですが、 perlで require "dame.pl"; として、dame.plで定義した変数を使おうとすると、 Global symbol "%hash_hensuu" requires explicit package name at test.pl line 16. となります。 パッケージや変数の輸出?など片言の言葉が思い浮かぶのですが、実際どのように書けば、外部ファイルの関数を使えるようになるのでしょうか?

    • ベストアンサー
    • Perl
  • Perlで定義されている関数名を全て取得する方法

    Perlで定義されている関数名を全て取得する方法はあるのでしょうか? ソースを見ればわかりますが、取得する方法があれば教えてください。 001.pl sub aaa{ print "a"; } 002.pl sub bbb{ print "b"; }

    • ベストアンサー
    • Perl
  • 単なる関数の集まりかオブジェクト化どっちが優れていますか?

    Perl5.6でCGIを作成しております。 単なるサブルーチンの集まりの関数と、オブジェクト(packageしたもの )で同じ機能の関数を呼び出した場合に、動作スピードや開発の柔軟性など いろいろ考えた場合に、 require か useのどちらにどのような長所があり優れて、どのような短所があるか 現在理解できていません。 皆様の様々なご意見をお聞かせ下さい。

    • ベストアンサー
    • Perl
  • pl内から別のplの実行

    requireとかサブルーチン化にしたりしないで、例えばただ単に01.plが終了した後に02.plを実行させる命令ってperlにありますか?

    • ベストアンサー
    • Perl
  • オブジェクト指向はなぜそんなにいいのですか?

    perlやphpでも昨今オブジェクト指向で書く人が増えてます。 同じ処理を繰り返さなくて済むとよくいいますが、 共通のファイルをrequireしてそこに共通のfunctionを定義するのとどうちがうのでしょうか? perlであったらサブルーチンを定義するのも同様。 そういうことを考えるとオブジェクト指向に乗り換えっていうのができません。 ご助言いただければ幸いです。

    • ベストアンサー
    • PHP
  • cgi-lib.plのReadParse関数

    あるパールからcgi-libを呼び出して、ReadParse関数を使おうとするとInternal Server Errorがでてしまいます。 パールの中身は #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); です。 そこで3行目と5行目の行頭に#をつけて飛ばすとパールは正常に動きます。 これってcgi-lib.plのReadParse関数がいけないんでしょうか? ダウンロードしたまま何も変更していないのに..... ちなみにサーバーのパールのバージョンは5.004のようです。

    • ベストアンサー
    • CGI
  • 関数定義の関数名の前にある&(アンパサンド)他

    関数定義で function &関数名() と関数名の前にアンパサンドを付けて定義しているものは、付けない普通の定義と何が違ってくるのでしょうか? あと、クラス関係で使われている::(コロン2つ)の使われ方がよくわかりません。 いくつかPHPの本を読みましたが上記2つのことについて明確に記述してあるものが見当たりませんでした。 ご教授お願いいたします。

    • ベストアンサー
    • PHP