-1

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

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冲洗,但这似乎没有做任何事情。我希望也许有人以前遇到过这种情况。对于...等的哈希值,我们深表歉意。我知道这很混乱:)

4

2 回答 2

2

你的问题说#$node_id set above somewhere...。根据您的预期输出:

1 1
2 2 
3 3

没有设置的代码很难说,$node_id但看起来你每次递增时都在重新打开文件$node_id。是否需要另一个循环来移动open外部?

于 2012-11-08T08:25:37.120 回答
1

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

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

open my $f, '>>', 'file.txt';
于 2012-11-08T08:02:36.667 回答