Perl包文件可以';找不到
我已经在perl中集成了示例函数。一切正常,但我无法连接Perl模块包文件(.pm) 请查看下面的代码 sample.plPerl包文件可以';找不到,perl,Perl,我已经在perl中集成了示例函数。一切正常,但我无法连接Perl模块包文件(.pm) 请查看下面的代码 sample.pl #!/usr/bin/perl use strict; use warnings; use Sample; print Sample->test_function(); 下午四时正 package Sample; sub test_function { return 'Welcome'; } 一次之后运行sample.pl文件。返
#!/usr/bin/perl
use strict;
use warnings;
use Sample;
print Sample->test_function();
下午四时正
package Sample;
sub test_function
{
return 'Welcome';
}
一次之后运行sample.pl文件。返回错误“找不到Sample.pm”,但包文件在同一文件夹中可用。问题的原因是找不到安装perl模块的位置。将下面的行添加到sample.pl文件中
use strict;
use warnings;
use Cwd qw( abs_path );
use File::Basename qw( dirname );
use lib dirname(abs_path($0));
use Sample;
print Sample->test_function();
首先,您的
Sample.pm
文件必须返回一个真值。通常的方法是附加1代码>和该文件的结尾
package Sample;
use strict;
use warnings;
sub test_function {
return 'Welcome';
}
1;
Perl 5.26之后,当前目录从@INC
中删除。有几种方法可以解决这个问题。例如,您可以在运行脚本时使用-I
选项:
perl -I. sample.pl
有关如何处理@INC
的更深入的讲座,请参见@daxim,该问题在1.51Cool中得到了解决,对于那些(像我一样)错过了这一变化的人来说:请注意,既然FindBin不是双重生命,它在老年人身上永远被打破。这只是我避免使用它的另一个原因。强制脚本的调用程序提供这些信息是没有意义的。-I…
不添加arch dir,所以它并不总是有效的<代码>-Mlib=…
应该用于获取特定于构建的组件。