1
我有一個名爲McuEnc.pm一個Perl模塊,它位於/首頁/埃裏克/ temp目錄:未定義子程序及主要:: key_enc
package McuEnc;
use 5.010;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT_OK = qw(key_enc data_enc data_dec);
sub key_enc { some code }
sub data_enc { some code }
sub data_dec { some code }
1;
我有一個Perl腳本名爲test.pl也位於在/ home/eric/temp目錄下:
use 5.010;
use strict;
use warnings;
use McuEnc qw(key_enc data_enc data_dec);
key_enc("1111");
...
我已將工作目錄更改爲/ home/eric/temp。現在,如果我運行test.pl腳本,它將正確運行。但是,如果我創建一個新的目錄/ home /埃裏克/溫度/我和McuEnc.pm文件移動到它,然後修改test.pl腳本follwoing:
use 5.010;
use strict;
use warnings;
use My::McuEnc qw(key_enc data_enc data_dec);
key_enc("1111");
...
然後我發現了以下錯誤當我test.pl再次運行:
McuEnc::key_enc("1111");
那麼,爲什麼我收到錯誤消息:
Undefined subroutine &main::key_enc called at ./test line 6.
不過,我仍然可以正確地調用子程序?哪裏不對?
打算讓快速猜測,並說這是因爲'use'語句與'package'語句不匹配。試試'包My :: McuEnc',看看它是否有效? – Sobrique
它的工作原理!非常感謝你。 –
@Sobrique你應該把它作爲答案 – stevieb