use POSIX 'strftime'; my $clear = $^O =~ m/Win32/ ? 'cls' : 'clear'; while ( 1 ) { system $clear; @digits = split '', strftime("%H%M%S", localtime); print ' ', @digits, "\n ------"; for my $bin ( 8,4,2,1 ) { print "\n$bin "; for my $digit ( @digits ) { $digit >= $bin ? do {$digit -= $bin; print "\052"} : print "\117" ; # print $bin & $digit ? 1 : 0; # could use binary and to select } } sleep 1; } # this will show you all the possible octal char codes you might like to use printf "\\%03o\t %s\n", $_, chr for 40..255;