尝试使用perl打开命令提示符下位于D驱动器中的文件

时间:2018-09-25 10:58:30

标签: perl perl-io

我正在尝试在Perl中学习文件处理,我想在Windows终端上以读取模式打开位于D:驱动器中的.txt文件,因此我使用的代码为:

open(DATA, "<D:/pay_info.txt") or die "Couldn't open file pay_info.txt, $!";
while(<DATA>) 
{ print "$_";}

它总是显示

  

无法打开文件pay_info.txt,在以下位置没有此类文件或目录   C:\ perl \ perl2.pl第1行。

这是什么意思?

2 个答案:

答案 0 :(得分:1)

在评论中,您说:

  

我必须在<和D:/

之间留一个空格

使用三参数版本的open可以避免此问题。多年来,这一直是Perl文档中推荐的方法。

open(my $fh, '<', 'D:/pay_info.txt')
  or die "Couldn't open file pay_info.txt, $!";

while (<$fh>) {
  print $_;
}

我还做了其他一些更改:

  • 使用了词法文件句柄($fh)而不是全局文件句柄(DATA)。实际上,DATA是Perl中的一个特殊文件句柄,因此大多数代码中不应使用它。
  • 切换为尽可能使用单引号(单引号的字符串识别较少的特殊字符,因此最好在可能的情况下使用它们)。
  • 删除了print行中不必要的引号(实际上,$_也是可选的)。
  • 重新格式化以使其更具可读性。

答案 1 :(得分:0)

您确定文件\R?存在吗? Perl无法在驱动器D:/pay_info.txt的基本文件夹中找到该文件(这就是D:语句打印的错误消息的含义)。