Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在循环中重写自身的perl文件_Perl_File_For Loop_Overwrite - Fatal编程技术网

在循环中重写自身的perl文件

在循环中重写自身的perl文件,perl,file,for-loop,overwrite,Perl,File,For Loop,Overwrite,所以我有一个循环,在这里我将值打印到一个文件。唯一的问题是,我只得到循环的最后一次打印。例如,如果这是在我的循环中打印的内容: 1 1 2 2 3 3 我所有的文件都将是3 3作为第一行也是唯一一行。这是我的密码: open my $f, '>', 'file.txt'; #$node_id set above somewhere... for my $key (keys %{$todo->{$node_id}->{'urls_hash'}}) { print

所以我有一个循环,在这里我将值打印到一个文件。唯一的问题是,我只得到循环的最后一次打印。例如,如果这是在我的循环中打印的内容:

1 1
2 2 
3 3
我所有的文件都将是3 3作为第一行也是唯一一行。这是我的密码:

open my $f, '>', 'file.txt';

#$node_id set above somewhere...
for my $key (keys %{$todo->{$node_id}->{'urls_hash'}}) { 
    print $f "$node_id $todo->{$node_id}->{'urls_hash'}->{$key}->{'domain_id'}\n";
}

close $f;

我试着用$|=1来冲水,但那似乎没有任何作用。我希望以前可能有人碰到过这件事。很抱歉…等的散列。我知道这很混乱:

对不起,这不是你问题的答案

要附加文件,请在打开文件时使用>>

open my $f, '>>', 'file.txt';
您的问题是$node\u id设置在上面某处。。。。根据您的预期输出:

1 1
2 2 
3 3

如果没有设置$node\u id的代码很难说,但看起来每次增加$node\u id时都会重新打开文件。是否还需要将打开的循环移到外部?

是否也可以在标准输出上打印数据,以查看是否确实是文件,而不是错误的数据?是的,我已经打印到STDOUT,并且得到了我首先列出的输出。您是否尝试使用不同的文件名?您没有演示您的问题。提供导致代码出现故障的输入。@AndreyAdamovich,我刚刚做了,它没有改变任何东西。但我不想附加到现有文件,我是第一次创建一个文件。谢谢。就这样。这个循环在另一个循环中太远了,我没有意识到。谢谢!