コマンドラインでストップウォッチ
30分プログラム、その672。コマンドラインで動作するストップウォッチを作ってみた。
perl stopwatch.pl
で起動すると、経過時間を延々と表示してくれます。
操作方法は、Enterを押せばラップタイム、C-cで終了、C-zで一時停止、ということにしといてください。まあ、ウソではないです。
使い方
$ perl stopwatch.pl 0:01:16.711
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # stopwatch.pl - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/10/05 20:43:04 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use Time::HiRes qw(gettimeofday tv_interval); use strict; use warnings; use Data::Dumper; sub div_mod($$){ my ($x, $y) = @_; my $div; { use integer; $div = $x / $y; } ($div, $x - $div*$y); } sub split_time($){ my ($t) = @_; my ($hour,$s) = div_mod($t, 3600); my ($min, $sec) = div_mod($s, 60); ($hour,$min,$sec); } my $from = [gettimeofday()]; while (1) { my $t = tv_interval($from); printf "%d:%02d:%02.03f\r",split_time($t); sleep 0.5; }