バイナリクロック
30分プログラム、その619。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_179にインスパイアされて、バイナリクロックをやってみよう。
どういうのを作るかは、結果を見てもらったほうが早いと思う。
21:51:17 $ perl binary-clock.pl ■□■□■ ■■□□■■
要するに、時間と分を2進数で表示してやればいい。
使い方
21:51:17 $ perl binary-clock.pl ■□■□■ ■■□□■■
あるいはwatchコマンドと組合せるとハッピーかもしれない。
$ watch perl binary-clock.pl
ソースコード
#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; sub clock(){ my ($sec,$min,$hour) = localtime(); ($hour,$min); } sub to_binary($){ my ($s) = @_; join '',map { $_ ? '■' : '□' } split //,sprintf "%b",$s; } my ($hour,$min) = clock(); print to_binary $hour,"\n"; print to_binary $min,"\n";
Perlの関数適用の優先度とか結合方向が謎すぎる
こんなコードを書いても動いちゃうPerlってステキ。
join '',map { $_ ? '■' : '□' } split //,sprintf "%b",$s;
関数を繋ぐときに、括弧はおろか、なんの記号もいらないだなんて・・・。