-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_idopen外側に移動する必要がある別のループはありますか?

于 2012-11-08T08:25:37.120 に答える
1

これはあなたの質問に対する回答ではありません、申し訳ありません。

ファイルを追加するには、ファイルを開くときに >> を使用します。

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