#!/usr/local/bin/perl -w

# use bignum (p,-50); # no es necesario para conseguir precisión

$h=$h0=$m=$seg=$flag=0;
while ($h0<=12){
    if ($h*60<=12*$m && $flag==0) {
	print int($h),":",int($m),":$seg";
	print "\t\t$h:$m\n";
	$flag=1;
    }
    $s++;
    $seg= $s % 60;     # digital
    $m += 1 /(60*1000);  # analogic, precision could be 1/(60*BIG M)
    if ($m>=60) { $m-=60; $flag=0; $h0++; } 
#    $h += 1/(12*60);    # wrong: with 2 engines does not work  
    $h = $h0 % 12 + $m/(60);
}

__END__
  
Reloj analógico: ¿Cuándo coinciden las manecillas?

Pues a todas horas menos a las 11.
  
Estos son los resultados con long doubles en un ordenador de 32 bits:
  
  0:0:0           0:0
  1:5:33          1.09090916666670907:5.454550000002544
  2:10:6          2.18181833333341792:10.9091000000050752
  3:16:39         3.27272750000012677:16.3636500000076063
  4:21:11         4.36363638888905785:21.8181833333434708
  5:27:44         5.4545455555557667:27.2727333333460019
  6:32:17         6.54545472222247681:32.7272833333486088
  7:38:50         7.63636388888919513:38.1818333333517076
  8:43:22         8.72727277777813566:43.6363666666881398
  9:49:55         9.81818194444485398:49.0909166666912387
  10:54:28                10.9090911111115723:54.5454666666943376
  0:0:0           5.12830056198509965e-13:3.07698033719105979e-11
  
BUGS
  
El error es pequeño, lo que se pone de manifiesto al no llegar 
exactamente a las 12:0  

