Perl - 脚本在Padre,Windows工作。但不是在Linux Ubuntu中

时间:2016-01-07 15:32:16

标签: linux perl ubuntu

我试图将我的脚本转移到我在Windows上工作的脚本上。但它在第一道障碍就失败了。

use strict;
use warnings;

my $keywordFile = 'keyword.txt';        

open(keyWords, $keywordFile) or die "$keywordFile not found\n";

my @keywordArray;

while ( my $line = <keyWords> ) {
    chomp $line;
    push @keywordArray, $line;
}

close(keyWords);

它仍在继续死亡,即使在同一目的地有一个名为'keyword.txt'的文件。问题来自Ubuntu,还是我的Perl错了?

1 个答案:

答案 0 :(得分:0)

  

它继续死亡,即使在同一目的地有一个名为'keyword.txt'的文件

根据工作目录解析相对路径(即运行目录脚本),而不是脚本所在的目录。

你应该

  1. 从包含所有需要文件的目录运行脚本
  2. 使用FindBin模块获取脚本位置并使用该路径引用文件名:
  3. 例如

    use FinBin;
    my $keywordFile = "$FindBin::Bin/keyword.txt";