• 締切済み

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

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;

みんなの回答

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

実際に試して問題なく動くことを確認してから回答No.1を書きましたが、Windowsだと何か違うんですかね。 $ cat main.pl use lib '.'; require 'sample.pm'; hello(); $ perl main.pl hello

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

main.plの先頭に use lib '.'; を追加してみてください。

unko347
質問者

補足

ご回答ありがとうございます。 以下のようにしてみましたが Undefined subroutine &main::hello called at c:\Perl_prj\main.pl line 4. とエラーが出力されてhello関数を読み込めないようでした。sample::hello(); としてみても同様にhello()関数を読み込めませんでした。 (main.pl) use lib '.'; require 'sample.pm'; hello();

関連するQ&A