这是我的代码
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的内容。
任何人都可以帮我理解这里有什么问题!(我可能犯了一个愚蠢的错误)
答案 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;