1

我有几个相似的文件,我希望它们都require放在第三个文件中,我可以在其中保留共性。然而,第三个文件需要使用前两个文件中声明的变量。如果我理解正确,我应该能够our在前两个文件中声明它们,以便能够在第三个文件中修改它们。

但是,我什至没有走那么远。我似乎无法require正确。它声称它“无法定位”我的相对路径,即使它与@INC 中紧随其后列出的某些内容相关。如果我使用绝对路径,它甚至会给出该错误,无论如何我都不热衷于此。

该文件具有与其邻居相同的权限,我可以通过网络浏览器访问它(它不打印任何内容,但如果我让它 die() 它正确地死掉,所以我知道 Apache 能够访问它,在至少。)路径中没有什么好笑的:它匹配=~ '^[0-9a-z_./]+$'

这不是编译错误,因为在尝试调试时,我注释掉了除最后一行之外的所有内容,这是1;需要require()成功的部分。

我可能做错了什么?

根据 ikegami 的要求更新:

eval { require '../test/testform_common_source.pl' };

或者

eval { require '/home/myappdev/test/testform_common_source.pl' };

两者都生产

Can't locate /home/myappdev/test/testform_common_source.pl in @INC (@INC contains: /home/myappdev/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd) at /home/myappdev/test/testform_step_2.pl line 75.

根据 ikegami 的要求更新 2:

-rw-rw-r--   1 chopper chopper 2090 Oct 28 12:34 testform_common_source.pl
-rw-rw-r--   1 chopper chopper 5608 Oct 29 06:51 testform_step_2.pl
4

0 回答 0