【问题标题】:FInding relative path in Perl在 Perl 中查找相对路径
【发布时间】:2016-07-12 15:29:48
【问题描述】:

我在 perl 模块中有以下代码,

package Foo;
our $pathToScript = "/home/Lucas/project841/python_script.py";

被同一文件目录下的其他模块频繁调用

$output = `$Foo::pathToScript`;
# etc

我想删除实际路径的硬编码并使用相对路径,例如。 ./python_script.py 从其他模块调用脚本。

理想的方式是什么?

【问题讨论】:

    标签: perl


    【解决方案1】:

    您说您的 Perl 脚本“经常”从 Python 脚本所在的同一目录调用,而不是“总是”。如果删除绝对路径,则需要将“经常”更改为“始终”,只需将 $pathToScript 更改为 Python 脚本名称(无路径)。

    您还可以考虑设置环境 PATH(在 Perl 脚本中),以便无论用户在何处运行,始终都能找到 Python 脚本($pathToScript 中没有完整路径) Perl 脚本的来源或位置。

    【讨论】:

    • 嗨,我不太明白你经常和总是。尽管如此,我已经尝试添加,但它似乎不起作用。我已经尝试打印调用它的任何 Perl 模块的当前目录,但它指向 /home/Lucas,即使 Perl 模块不驻留在那里。
    • 如果您打算始终使用 Python 脚本分发 Perl 模块(*.pm 文件),并希望 PM 能够在存储 PY 的任何位置找到 PY(并非总是在 /home/lucas ),看看这个以确定 PM 的路径(从调用 PL 脚本),然后 PL 脚本将使用完整路径调用 PY 脚本。 symkat.com/find-a-perl-modules-path
    • 嗨。我倾向于在同一目录中分发包含 *.pm 和 .py 文件的整个文件夹。
    猜你喜欢
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多