Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';t Perl在我的t/目录中找到库了吗?_Perl - Fatal编程技术网

为什么可以';t Perl在我的t/目录中找到库了吗?

为什么可以';t Perl在我的t/目录中找到库了吗?,perl,Perl,我在当前目录/t中有一个.pm文件,我插入了以下代码行: use lib qw(.); 然后我插入了这行代码 use TestUtil.pm; 其中TestUtil.pm位于当前目录中,但我一直收到以下错误: 在@INC中找不到TestUtil.pm(@INC包含:……。(注意@INC包含当前目录) TestUtil.pm: 测试XXX.t: 我做错了什么?尝试从“use…”语句中的模块名称中删除.pm。尝试从“use…”语句中的模块名称中删除.pm。您是否已将TestUtil.pm声明为T

我在当前目录/t中有一个.pm文件,我插入了以下代码行:

use lib qw(.);
然后我插入了这行代码

use TestUtil.pm;
其中TestUtil.pm位于当前目录中,但我一直收到以下错误:

在@INC中找不到TestUtil.pm(@INC包含:……。(注意@INC包含当前目录)

TestUtil.pm
测试XXX.t

我做错了什么?

尝试从“use…”语句中的模块名称中删除.pm。

尝试从“use…”语句中的模块名称中删除.pm。

您是否已将TestUtil.pm声明为TestUtil模块

# in your TestUtil module...
package TestUtil;
编辑:

您的Perl模块(TestUtil.pm)是否返回状态?请尝试将其添加到TestUtil.pm文件的末尾:

1;

您是否已将TestUtil.pm声明为TestUtil模块

# in your TestUtil module...
package TestUtil;
编辑:

您的Perl模块(TestUtil.pm)是否返回状态?请尝试将其添加到TestUtil.pm文件的末尾:

1;
在TestUtil.pm中


包TestUtil

使用严格;使用警告

开始{使用导出器();使用 vars qw($VERSION@ISA@EXPORT) ))

#为版本设置版本 检查
$VERSION=1.00;@ISA= qw(出口商);@EXPORT=qw )}

使用变量qw($VERSION@ISA@EXPORT)

sub_a{return 1;}


在测试中XXX.t

use lib '.';
use t::TestUtil;

使用libqw(.); 严格使用; 使用警告

使用TestUtil

TestUtil.pm中的


包TestUtil

使用严格;使用警告

开始{使用导出器();使用 vars qw($VERSION@ISA@EXPORT) ))

#为版本设置版本 检查
$VERSION=1.00;@ISA= qw(出口商);@EXPORT=qw )}

使用变量qw($VERSION@ISA@EXPORT)

sub_a{return 1;}


在测试中XXX.t

use lib '.';
use t::TestUtil;

使用libqw(.); 严格使用; 使用警告

使用TestUtil



如果您是这样运行测试的:

证明——lib t

那么,您的工作目录实际上是一个高于t的级别/

所以在您的包中(源文件
t/TestUtil.pm

在你的测试中

use lib '.';
use t::TestUtil;

我在几个CPAN模块中见过这种方式。

如果您是这样运行测试的:

证明——lib t

那么,您的工作目录实际上是一个高于t的级别/

所以在您的包中(源文件
t/TestUtil.pm

在你的测试中

use lib '.';
use t::TestUtil;

我在几个CPAN模块中看到过这样做。

哦,很抱歉,我最初没有.pm。我还尝试了要求“/TestUtil.pm”不起作用(是的,这一个有一个.pm)。哦,很抱歉,我最初没有.pm。我还尝试了要求“/TestUtil.pm”不起作用(是的,这一个有一个.pm)你能粘贴这两个Perl文件的标题(比如,前10行左右)吗?如果我们能看到它,这将更容易帮助解决问题:)请编辑原始帖子以包含所有相关代码(没有错误),并删除下面的回复。谢谢可以粘贴这两个Perl文件的标题(比如前10行左右)吗?如果我们能看到它,帮助解决问题会更容易一些:)请编辑原始帖子以包含所有相关代码(无错误),并删除下面的回复。谢谢所以我有:#在我的TestUtil.pm文件中。。。包TestUtil;严格使用;使用警告;在我的test_XXX.t文件中的sub a{}#。。。使用libqw(.);使用TestUtil;你能把代码粘贴到你原来的问题里吗?很难想出包含更多信息的潜在解决方案。因此我有:#在我的TestUtil.pm文件中。。。包TestUtil;严格使用;使用警告;在我的test_XXX.t文件中的sub a{}#。。。使用libqw(.);使用TestUtil;你能把代码粘贴到你原来的问题里吗?很难想出包含更多信息的潜在解决方案。只是一个礼节问题:最好在问题的原始来源中发布问题的任何更新。这样,当其他可能的解决方案获得支持时,您的回答不会丢失。对不起。字符限制不允许我将其作为评论。请参阅我的原始帖子——另一个快速的想法。当我复制你的代码时,这对我很有用。@Kys,最好编辑你的原始问题。我喜欢使用“编辑”语句来显示我的答案被修改的地方。这只是一个礼节:最好在问题的原始来源中发布问题的任何更新。这样,当其他可能的解决方案获得支持时,您的回答不会丢失。对不起。字符限制不允许我将其作为评论。请参阅我的原始帖子——另一个快速的想法。当我复制你的代码时,这对我很有用。@Kys,最好编辑你的原始问题。我喜欢使用“编辑”语句来显示我的答案被修改的地方。这是一个很好的观点:了解脚本是如何被调用的以及模块位于何处会很有帮助。这很有效!事实上,我的工作目录高于t/。谢谢史努比、贝德维尔和卡伯格!这是一个很好的观点:了解脚本是如何被调用的以及模块位于何处会很有帮助!事实上,我的工作目录高于t/。谢谢史努比、贝德维尔和卡伯格!