私は最初の単純なパッケージ(実際には最初のパッケージ期間)を作ることに多くの問題を抱えているようです。私は私がやっていなければならないこと全てをやっていますが、それはまだ機能していません。ここでのパッケージは、(私はあなたがモジュールを呼び出すことができますね)です:Perlでパッケージを作成する
package MyModule;
use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT =();
@EXPORT_OK = qw(func1 func2);
%EXPORT_TAGS = (DEFAULT => [qw(&func1)],
Both => [qw(&func1 &func2)]);
sub func1 { return reverse @_ }
sub func2 { return map{ uc }@_ }
1;
私はこれが私のモジュールのところすべてであるPerl/site/lib
でMyModuleという(はい、それは.PMファイルとして保存された)(このモジュールを保存しました内蔵されていないものは保存されます)。次に、このモジュールのinnをPerlスクリプトで試してみました。
use strict;
use warnings;
my @list = qw (J u s t ~ A n o t h e r ~ P e r l ~ H a c k e r !);
use Mine::MyModule qw(&func1 &func2);
print func1(@list),"\n";
print func2(@list),"\n";
私はこれをmy.pl
として保存します。その後、私はmy.pl
を実行すると、このエラーを取得する:これはなぜ起こるか
Undefined subroutine &main::func1 called at C:\myperl\examplefolder\my.pl line 7.
誰かが説明していただけますか?前もって感謝します!
注:はい、私の例はPerl Monksからでした。 the Perl Monks "Simple Module Tutorial"を参照してください。ありがとうございますtachyon!
「Mine :: MyModule」が「MyModule」に変更されて質問が意味をなさないため、ロールバックされました – Zaid