我正在尝试在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行。
这是什么意思?
答案 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:
语句打印的错误消息的含义)。