El tema del tiempo claramente podría hacerlo con time() pero aprovechando la funcionalidad de "AnyEvent" puedo generar un ciclo infinito y cada cierto tiempo transcurrido (suma de intervalos = duración) puedo crear condiciones para realizar muchas tareas.
Al usar GTK2 no encontré muchas formas de controlar el tiempo ya que comandos como "sleep" y similares interrumpen la ejecución de cualquier cosa dentro del main de GTK2 (Gtk2->main;) y al crear algo como lo que sigue, no me funciona:
Using perl Syntax Highlighting
- my $playlist = XMLin("playlist.xml");
- foreach ( @{ $playlist->{ 'archivos' } } ) {
- # ejecutar reproduccion
- # {código a ejecutar}
- sleep($_->{ 'duracion' });
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
La forma anterior sería ideal pero solo funciona fuera del main GTK2 y no encontré cómo hacer funcionar algo así dentro. Vi otras formas de hacer "loops" pero todas tienen más inconvenientes que cosas buenas.
Según todo lo que leí, "AnyEvent" es el que mejor trabaja en cuanto a rendimiento y desempeño pero como decía, esta fue la mejor forma -por ahora- aunque ya luego tengo que agregarle muchas más cosas y seguramente veré otra forma de hacer lo que necesito.
Sólo son ideas XD... gracias.