Создание пакетов с помощью 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;

Я сохранил этот модуль как MyModule (да, он был сохранен как файл .pm) в Perl / site / lib (это здесь хранятся все мои модули, которые не являются встроенными). Затем я попытался использовать этот модуль в сценарии 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 . См. Perl Monks «Простое руководство по модулю» . Спасибо тахион !

6
задан Zaid 25 August 2011 в 09:49
поделиться