gpt4 book ai didi

linux - Perl 脚本不会在相对路径中运行下标

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:43:54 24 4
gpt4 key购买 nike

我有一个 perl 脚本:run.pl,每分钟都会被 cron 调用。

run.pl 唯一做的就是调用另外两个脚本:download.pl 和 parse.pl:

#!/usr/bin/perl
use warnings;
use strict;

do 'download.pl';
do 'parse.pl';
print "done!\n";

在 download.pl 和 parse.pl 中有两个打印“完成下载”和“完成解析”现在我将脚本输出到/var/log/script.log 并检查要运行的脚本。

run.pl 脚本运行良好,输出“完成!”到日志文件。但不会调用其他两个脚本。我认为这是一个相对路径问题,当我使用绝对路径时它会起作用。

但这就是问题所在,脚本处于测试阶段并且每次都更改路径,总是更改绝对路径将是一团糟。

有没有办法让脚本从相对路径运行?

编辑:当我使用“perl run.pl”从命令行自己运行它时,它可以毫无问题地运行脚本。

最佳答案

嗯,你为什么要使用 do?这不会“调用”一个程序,你知道的!

这些是库模块还是程序?

另外,程序应该在 $ENV{PATH} 中找到,而库应该在 @INC 中找到。这些几乎肯定是不同的东西。

我的建议是:

  1. 要调用 $ENV{PATH} 中的另一个程序,请使用 system() 或反引号。
  2. 要在@INC 中加载库,请使用requireuse
  3. 保留 do FILE 以用于几乎肯定不适用于此处的奇异巫术目的。

关于linux - Perl 脚本不会在相对路径中运行下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com