如何检测程序是否在PAR档案中运行?

问题描述:

我正在研究一个庞大的Perl应用程序,它与PAR捆绑在一起,以及一堆支持文件。如何检测程序是否在PAR档案中运行?

当应用程序在PAR中运行时,我可以使用PAR::read_file来获取存档中的这些不同文件。然而,在我开发的时候,我不希望每次调整一些代码时都不得不重新整个应用程序的PAR。

有没有一种方法可以判断脚本是在PAR内还是在运行时运行,所以我可以选择从PAR归档文件或常规文件系统加载文件?

PAR::Environment或许可以提供一些线索:

PAR无论是在可执行文件或PAR档案和使用它们的建设过程中使用的各种环境变量。

...

PAR_0

如果正在运行的程序是由PAR存档或PP生产的可执行文件内运行,此变量包含提取的节目的名称(即特等文件)。

+2

谢谢,'$ ENV {PAR_0}'诀窍! – friedo 2009-11-21 03:31:41

+1

思南的答案是正确的。这是官方的做法。 – tsee 2009-11-21 13:14:18

+1

@tsee非常感谢您验证并非常感谢PAR和pp。自从我开始使用它们以来,它们对我非常有帮助。 – 2009-11-21 13:44:37