如何从我的 perl 脚本调用同一目录中的脚本

Posted

技术标签:

【中文标题】如何从我的 perl 脚本调用同一目录中的脚本【英文标题】:How can I invoke a script in the same directory from my perl script 【发布时间】:2012-06-09 11:37:52 【问题描述】:

我正在尝试从 perl 脚本中调用脚本。 我可以看到两种方法。

使用 ./somescript 或指定完整的目录路径。两者都不是理想的,因为“./”只有在调用者 cd 进入目录时才会起作用。完整路径,不是相对的,而是绝对的。无论如何围绕这个?谢谢

【问题讨论】:

***.com/questions/84932/… 【参考方案1】:

如果要查找原始脚本所在的目录,请使用 FindBin 模块,如果要查找当前工作目录,请使用 Cwd

【讨论】:

【参考方案2】:

一种方法是确定您的脚本所属的目录,并使用该目录How do I get the full path to a Perl script that is executing?

提供了 2 种方法来实现这一点。

【讨论】:

【参考方案3】:

要获取您当前正在执行的脚本的完整路径,您可以使用来自 PerlMonks 的either of the following chunks of code。文件::基本名称:

#!/usr/bin/perl -w
use strict;
use File::Spec::Functions qw(rel2abs);
use File::Basename;
print dirname(rel2abs($0));

或CWD 可用于此目的。 CWD 示例:

use Cwd;
my $dir = getcwd;

应该可以使用基本目录构建完整路径,再加上您对初始脚本和要调用的第二个脚本的相对位置的了解。这样,虽然您将使用绝对路径来调用第二个脚本,但您只是在硬编码相对路径?

【讨论】:

以上是关于如何从我的 perl 脚本调用同一目录中的脚本的主要内容,如果未能解决你的问题,请参考以下文章

我的 perl 脚本如何调用和执行并后处理它

从 Perl 脚本运行 PHP

进入由 shell 脚本设置的 perl 程序环境变量

将perl脚本添加到makefile

如何调试从 PHP 文件调用的 Perl

在 Perl 中获取当前工作目录路径