【发布时间】:2010-10-18 05:37:33
【问题描述】:
我最近编写了一个新的 Perl 脚本来根据进程名称/用户名终止进程,并使用类对其进行扩展,以便我可以在其他程序中重用进程代码。我目前的布局是 -
/home/mutew/src/prod/pskill <-- Perl script
/home/mutew/src/prod/Process.pm <-- Package to handle process descriptions
我在 $PATH 变量中添加了 ~/src/prod 以从任何地方访问脚本。从其驻留目录以外的任何目录运行脚本会导致“无法在 @INC 中找到 Process.pm”(这是可以理解的,因为除了 /usr 中的共享目录之外,@INC 仅包括当前目录 - '.')。我一直在使用的一种解决方法是使用 lib 指令 -
use lib '/home/mutew/src/prod';
但这是一个主要的可移植性问题。任何解决方案也可以让我将脚本导出到其他系统而无需更改?
编辑
- 我选择“depesz”作为正确答案是因为它的简单性和核心模块的使用。
- brian d foy 的回答虽然提出了其他方法来完成相同的任务 (TMTOWTDI),但他在 perlfaq8 中的贡献使这个问题变得绝对多余。
【问题讨论】:
-
也许这只是我的安装,但如果两个文件都在同一个目录中,我只需“使用 FILENAME.pm”。然后“我的 $newVar = PACKAGENAME->new();”适用于任何对象编程。
-
哇,这在 perl 中应该比这容易得多!让简单的事情变得简单等等。