0

次のコードを使用して、ファイルの最初の行を削除します。

use Tie::File;
tie @task_queue, 'Tie::File', $queue_path or die $!;
shift @task_queue;
$#task_queue -= 1;
untie @task_queue;

ファイルの内容は次のようになります。

line1
line2
line3

しかし、コードを使用すると、line1 は削除されますが、次のようにファイルの最後に改行が残ります。

line2
line3
# <- here is a blank line

このファイルをキューとして使用するため、後で新しい行を追加すると、次のようになります。

line2
line3
# <- here is a blank line
line4

Tie::File を使用して最初の行を削除するときに空白行を残さないようにする方法はありますか?

4

2 に答える 2

0

これを手伝ってくれたすべての人に感謝します。私は解決策を見つけました。それは美しいコードではありませんが、機能します。また、結んだり解いたりするだけでも空白行が生成されることもわかりました(それらの間にアクションはありません)。モジュールの設計上の問題である可能性があります。

use Tie::File;
tie @task_queue, 'Tie::File', $queue_task_path or die $!;
shift @task_queue;
untie @task_queue;
print("Removing the blank line.\n");
my $queue_task_file_size = -s $task_queue;
truncate($task_queue, $queue_task_file_size - 1);
于 2014-07-16T21:15:08.780 に答える