【问题标题】:How do I detect if a program is running within a PAR archive?如何检测程序是否在 PAR 存档中运行?
【发布时间】:2026-01-12 15:25:01
【问题描述】:

我正在开发一个与PAR 捆绑在一起的大型 Perl 应用程序,以及一堆支持文件。

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

有没有一种方法可以让我在运行时判断脚本是否在 PAR 中运行,以便我可以选择从 PAR 存档或常规文件系统加载文件?

【问题讨论】:

    标签: perl zip par


    【解决方案1】:

    PAR::Environment 或许能提供一些线索:

    PAR 在构建可执行文件或 PAR 档案的过程中以及它们的使用过程中使用各种环境变量。

    ...

    PAR_0

    如果正在运行的程序是从 PAR 存档或 pp 生成的可执行文件中运行的,则此变量包含提取程序的名称(即 .pl 文件)。

    【讨论】:

    • @tsee 非常感谢您的验证,非常感谢 PAR 和 pp。自从我开始使用它们以来,它们对我的帮助很大。