perl中的相对文件路径

前端之家收集整理的这篇文章主要介绍了perl中的相对文件路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用相对文件路径的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之外,最好使用词法文件句柄.)

原文链接:https://www.f2er.com/Perl/172057.html

猜你在找的Perl相关文章