无法从以读/写/追加模式打开的文件中读取

时间:2013-12-20 17:39:03

标签: perl

这是我的代码

use strict;
use warnings;

open(INFILE,"<File1")    or die "Can't open the file";
open(OUTFILE,"+>>File2") or die "Can't open the file";

while(<INFILE>) {
   print OUTFILE "$_";
}

while(<OUTFILE>) {
   print "$_\n"; 
}

尝试将File1的内容移动到以读取,写入和追加模式创建的File2。这里的问题是我使用File1内容创建了我的File2,但print内的while(<OUTFILE>) {}语句不打印File2的内容。 任何人都可以帮我理解这里有什么问题!(我可能犯了一个愚蠢的错误)

2 个答案:

答案 0 :(得分:5)

在您的第一个while循环后,您就在OUTFILE的末尾。因此,第二个while循环永远不会真正执行。在阅读OUTFILE之前使用seek

use strict;
use warnings;
open(INFILE,"<File1")or die "Can't open the file";
open(OUTFILE,"+>>File2")or die "Can't open the file";
while(<INFILE>)
{
print OUTFILE "$_";
}

seek OUTFILE, 0, 0;

while(<OUTFILE>)
{
    print "$_\n"; 
}

答案 1 :(得分:3)

将光标设置回OUTFILE的开头:

seek OUTFILE, 0, 0;