【发布时间】:2013-11-12 02:36:00
【问题描述】:
我有一个 perl 模块 DB.pm,里面是这样的:
package GUI::DB;
use strict;
use DBI;
use vars qw(@ISA @EXPORT);
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(fun);
sub fun {
my $dsn = "DBI:mysql:database=test";
return $dsn;
}
然后我写了test.pl:
#!/usr/bin/perl
use strict;
use warnings;
use lib '~/Downloads/GUI'; #Here is the path of the DB.pm module.
use DB;
my $aa = fun();
我已经尝试修复它几个小时,我尝试使用评论 perl -l /path/to/file aa.pl,它没有给我任何错误,但脚本根本没有运行,我对 Perl 完全是新手,真的卡住了。
请帮帮我。
编辑:所以模块的名称是 DB.pm,文件夹的名称现在是 GUI,我在我的脚本中使用 use DB,仍然不起作用,我应该在哪里保存 DB.pm 文件?
【问题讨论】:
-
你忘了说
use HA;吗? -
惯例是在一个名为
GUI/DB.pm的文件中定义一个名为GUI::DB的包,并使用use GUI::DB导入它以避免您遇到的问题。 -
是的,应该是使用HA;但它仍然不起作用。
-
我把文件夹名改成GUI,不能用'/'命名文件,现在给我
Can't locate GUI/DB.pm in @INC (@INC contains: ~/Downloads/GUI /etc/perl ...the lib paths.. -
~没有被 perl 扩展。如果您在 Unix 系统上,请改用 $ENV{HOME}。