【发布时间】:2019-06-23 06:54:00
【问题描述】:
我是 perl 新手,我正在尝试做这个练习,但它不起作用。
这是我创建的模块。
#!/usr/bin/perl
use warnings;
use strict;
package Prepare;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( clean my_print );
sub clean{
return chomp($_[0]);
}
sub my_print{
return print("The Results: $_[0]\n");
}
1;
这是我的脚本test_lib.pl
#!/usr/bin/perl
use warnings;
use strict;
use lib '/home/foobar/code';
use My::Prepare;
print "Enter a word: ";
my $input=<STDIN>;
print "You entered: $varia";
clean($input);
my_print($input);
我收到此错误:
在 ./test_lib.pl 第 13 行第 1 行调用了未定义的子例程 &main::clean。【问题讨论】:
-
您的包名为
Prepare,而不是My::Prepare。将use My::Prepare;更改为use Prepare; -
问题:与脚本(和/或
use lib中的路径)相关的模块文件在哪里?该(模块)文件的名称是什么? -
package Prepare;,use My::Prepare;... 其中一个是错误的。