読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Perlでプログレスバーのようなものを出す

perl

今日はTIPS的な日記です.

Perlの特殊文字(エスケープシーケンス)の'\r'を使えば, プログレスバーのようなものを表現できるということを, 今日知りました.

use strict;
use warnings;

$| = 1;

for my $i (1..10) {
    print '.' x $i . "\r";
    sleep 1;
}
print "\n";

こんな感じで書けば, 1秒に1個ずつ'.'が増えていくような, プログレスバーのようなものを表示することができます.

冒頭の'$| = 1;'ですが, この1行がない場合, 1秒に1個ずつ'.'が表示されるのではなく, 10秒後に一気に'.'が10個表示されるようになってしまいます.

この辺りについては, Perl Beginners #5の@師のブログ記事や, ここで紹介されているこの記事などが参考になりますので是非ご覧頂ければと思います.