進捗表示

back
fsck のスキャンの進捗みたいに
================================>                                       [46%]
というのを表示したい場合、\r をまず print して、1行(改行無し) print すればよい

画面の幅が 80 と仮定して

$| = 1;
$end = 100;
foreach (1..$end) {
  my $len = $_/$end*100;
  print "\r" . ("="x int($len/10*7)) . "> " . (" "x (70-int($len/10*7))) ."[$len%]";
  # select undef, undef, undef, 0.05;
  # ループ処理
}

見たいな感じで。
動かせばわかる:)
$| を真にして、出力をフラッシュするのを忘れないように。

back