加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl中的相对文件路径

发布时间:2020-12-15 21:51:44 所属栏目:大数据 来源:网络整理
导读:我有一个使用相对文件路径的perl脚本. 相对路径似乎是相对于脚本执行的位置而不是perl脚本的位置.如何使相对路径相对于脚本的位置? 例如,我有一个目录结构 dataFileToRead.txt-bin myPerlScript.pl-output 在perl脚本中我使用代码打开dataFileToRead.txt my
我有一个使用相对文件路径的perl脚本.

相对路径似乎是相对于脚本执行的位置而不是perl脚本的位置.如何使相对路径相对于脚本的位置?

例如,我有一个目录结构

dataFileToRead.txt
->bin
  myPerlScript.pl
->output

在perl脚本中我使用代码打开dataFileToRead.txt
my $rawDataName =“../ dataFileToRead.txt”;
打开INPUT,“<”,$rawDataName; 如果我从bin目录运行perl脚本,那么它可以正常工作 如果我从父目录运行它,那么它无法打开数据文件.

解决方法

FindBin是您问题的经典解决方案.如果你写
use FindBin;

那么标量$FindBin :: Bin是Perl脚本位置的绝对路径.您可以在打开数据文件之前使用chdir,或者只在要打开的文件的路径中使用它

my $rawDataName = "$FindBin::Bin/../dataFileToRead.txt";
open my $in,"<",$rawDataName;

(顺便说一下,除了非常古老的perl之外,最好使用词法文件句柄.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读