Perl-使用相对路径从另一个脚本调用脚本
我有一个调用其他Perl脚本的Perl脚本,我使用这一行:Perl-使用相对路径从另一个脚本调用脚本,perl,Perl,我有一个调用其他Perl脚本的Perl脚本,我使用这一行: system($^X, "script.pl", @ARGV); 所有脚本都存在于同一个文件夹中,但我想从另一个文件夹调用主脚本,这意味着脚本位于D:\TEST\Perl下,但我从C:\打开命令行,并从该位置调用主脚本 可能是一个愚蠢的问题,但是我如何调用子脚本,使其位置相对于主脚本? 我真的需要使用这个模块吗?哪一个?听起来你想要这个模块 您可以先使用chdir?我想您需要FindBin。但我也认为您可能存在XY问题。在程序中的一
system($^X, "script.pl", @ARGV);
所有脚本都存在于同一个文件夹中,但我想从另一个文件夹调用主脚本,这意味着脚本位于D:\TEST\Perl下,但我从C:\打开命令行,并从该位置调用主脚本
可能是一个愚蠢的问题,但是我如何调用子脚本,使其位置相对于主脚本?
我真的需要使用这个模块吗?哪一个?听起来你想要这个模块
您可以先使用
chdir
?我想您需要FindBin
。但我也认为您可能存在XY问题
。在程序中的一个位置列出可调用脚本及其完整路径(使用FindBin
作为“主”脚本)有什么不对?$RealBin
与$Bin
相同,只是如果有人创建脚本的符号链接,它也可以工作<因此,应该使用code>$RealBin而不是$Bin
@ikegami我同意有必要指出$Bin
和$RealBin
之间的区别。我认为我们对这里的情况了解不够,不能说哪种方法最好,这是没有意义的$RealBin
添加了对符号链接的支持,而不会带走任何东西,因此$RealBin
始终是最好的使用方法。
use FindBin '$Bin'; # $Bin will contain the directory containing the executable file
# Then, later in your code
system($^X, "$Bin/script.pl", @ARGV);