• 締切済み

Perlで、経過をLoading画面みたいに表示したい。

汚いソースですみません。 コマンドプロンプトから以下のプログラムを実行すると、 $n=@list; for ($i=1; $i<@list; $i++){ print push(@percentage int(eval("$zentai"/"$n"*100))); print "$percentage[-1]\%進行中...File$i\n"; } 結果は 0%進行中...File1 0%進行中...File2 2%進行中...File3 というように、どんどん下に向かって新たな結果が出てくるのですが、 「進行中...File」の部分は常に同じで、画面上にはそれ1つしか出ずに、 ローディング画面のように数字のところだけが変わるプログラムにするには、どうしたら良いでしょうか?

みんなの回答

  • rafysta
  • ベストアンサー率45% (24/53)
回答No.3

use Term::Activity; my $n = @list; my $ta = new Term::Activity 'Now start...'; for(my $i = 0; $i < $n; $i++){ sleep 0.9; my $percentage = $i / $n * 100; $ta->relabel("$percentage%進行中...File$i"); $ta->tick; }

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.2

$n=@list; for ($i=1; $i<@list; $i++){ print push(@percentage int(eval("$zentai"/"$n"*100))); &progress("$percentage[-1]\%進行中...File$i"); } sub progress { my($p) = @_; my($copy); $copy = $\; $\ = "\r"; print $p; $\ = $copy; }

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

>print "$percentage[-1]\%進行中...File$i\n"; の末尾 \n を \r にしてみるとどうですか? 参考にどうぞ。 http://seclan.dll.jp/cccrlf.htm

関連するQ&A