my $time = sprintf '%02d0%02d0%02d', (localtime)[2, 1, 0]; for my $mask (8, 4, 2, 1) { print " "; for my $d (split //, $time) { print $d & $mask ? '## ' : ' '; } print "\n $mask "; for my $d (split //, $time) { print $d & $mask ? '## ' : ' '; } print "\n\n"; } print " HH HH MM MM SS SS\n";