我使用use lib "./DIR"
从其他地方的文件夹中获取库。但是,它似乎不能在我的服务器上工作,但它在我的本地桌面上正常工作。 有什么特别的原因?Perl的lib pragma是如何工作的?
还有一个问题,use lib
会在几个模块中传播吗?
两种情况: 假设我需要一些库的基类,但我知道它需要扩展,扩展类需要使用另一个库。我可以将use lib
命令放在基类中吗?还是我需要把它放在每个扩展课堂上?
最后,我可以只有一个use package
其中软件包包含一堆使用lib,它会传播使用lib语句到我的当前模块? < - 我不这么认为,但总是询问
我用getcwd弄清楚了哪里“。”是。只是想知道是否有可能找出perl脚本的位置?当我尝试使用FindBin时,它不工作,因为lib和bin不在同一位置。所以这里是我想要做的一个例子。我从说folder1运行perl脚本。它使用lib“/ abs/path/topack /”;使用包。在包中,我使用lib'./FOLDER2';假设cwd将是相同的。由于“。”指向Folder1,而不是路径。这是错误的。我如何不使用包中的绝对路径还能够使用。?可能吗? – Tyug 2010-04-12 18:55:53
@Tyug:您可以通过检查'%INC'来确定模块的加载位置。有关类似的问题,请参阅http://stackoverflow.com/questions/1463414,以便您指出正确的方向。 – 2010-04-12 19:22:54
非常感谢! – Tyug 2010-04-13 12:56:02