Strawberry Perl:忘了环境变量?

时间:2013-11-20 03:44:35

标签: windows perl environment-variables perl-module strawberry-perl

我在Windows XP上运行的Strawberry Perl中安装了许多模块,例如:

  • 正则表达式::通用
  • URI ::寻找:: Schemeless

这些库在安装每个模块后第一次在我的perl代码中正常工作。

问题在于,我每次运行我的脚本时都会失败并出现错误:

  

无法在@INC中找到Regexp / Common.pm(@INC包含:C:/ strawberry / perl / lib C:/ strawberry / perl / site / lib C:\ strawberry \ perl \ vendor \ lib。)

我已将所有适当的路径放入Windows的环境变量:PERL5LIB和其他如lib,这些是在stackoverflow和其他处理模块安装的wesites上提出的。 除非我执行以下解决方法,否则脚本将继续失败:

  1. 在Windows中打开“编辑环境变量”窗口。 (“我的电脑” - >“属性” - >“高级”标签 - >“环境变量”)
  2. 如果不添加或更改任何内容,请单击“确定”。
  3. 重新打开已打开的任何perl控制台或打开一个新的perl窗口。
  4. 现在找到的库都没有问题。
  5. 有谁知道为什么会这样?我怀疑它可能与Windows / cmd或甚至我公司的Windows环境设置有关?

    任何建议都会受到赞赏,因为这是一个非常烦人的问题!

1 个答案:

答案 0 :(得分:1)

Windows默认情况下不会每天清除环境变量,因此公司设置中可能会重置环境变量。

如果是这种情况,您可以选择以下几种方法:

  1. 让网络管理员修改脚本,使其不重置(或包含您要指定的PERL5LIB目录。)
  2. 编写另一个日常任务,在日常任务之后运行,在本地计算机上重新添加变量。
  3. 使用Windows批处理文件包装perl脚本,或使用perl -I运行它们以在运行时指定库。
  4. 从Cygwin bash或mingw bash运行您的perl脚本,它不会使用您计算机的全局环境变量。