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

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

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

【问题讨论】:

标签: perl directory


【解决方案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;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-10
        • 2023-03-17
        • 1970-01-01
        • 2012-07-23
        • 2010-10-18
        • 2014-07-22
        • 2014-06-05
        相关资源
        最近更新 更多