Tôi dường như gặp nhiều rắc rối khi tạo Gói đầu tiên, đơn giản của tôi (thực ra đây là gói thời gian đầu tiên của tôi). Tôi đang làm mọi thứ tôi nên làm (tôi nghĩ) và nó vẫn không hoạt động. Dưới đây là các gói (tôi đoán bạn có thể gọi nó là một Module):Tạo các gói với 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;
tôi lưu module này như MyModule (có, nó được lưu dưới dạng file .pm) trong Perl/site/lib
(đây là nơi mà tất cả các module của tôi không được tích hợp sẵn được lưu trữ). Sau đó, tôi đã cố gắng sử dụng mô-đun này quán trọ một kịch bản 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";
Tôi lưu này là my.pl
. Sau đó, tôi chạy my.pl
và nhận được lỗi này:
Undefined subroutine &main::func1 called at C:\myperl\examplefolder\my.pl line 7.
Ai đó có thể vui lòng giải thích lý do điều này xảy ra? Cảm ơn trước!
Note: Có ví dụ của tôi là từ Perl Monks. Xem the Perl Monks "Simple Module Tutorial". Cảm ơn bạn tachyon!
Được cuộn lại vì câu hỏi không có ý nghĩa với 'Mine :: MyModule' đã thay đổi thành' MyModule' – Zaid