I have released Astro::Sunrise version 0.96 last Thursday and DateTime::Event::Sunrise version 0.0505 yesterday.
With the previous versions, choosing the *precise* algorithm could result in an infinite loop in some cases. See https://rt.cpan.org/Public/Bug/Display.html?id=109992 and https://rt.cpan.org/Public/Bug/Display.html?id=110016 Actually, I think that there is a bug in the "precise" algorithm. The new versions are just a stopgap measure to prevent infinite loops. I still have to check and overhaul the precise algorithm. See below the test case given by the bug reporters. They show the sunrise and sunset in a New Zealand location in November 2015. The times are given in UTC, which is why the sun rises at "17:xx" and sets at "06:xx". As you can see, the basic algorithm gives a regular variation of the sunrise and sunset times, while the precise algorithm has some bizarre jumps. With the precise algorithm 24 | 17:22 | 06:31 25 | 17:22 | 06:32 26 | 17:22 | 06:33 27 | 17:21 | 06:34 28 | 17:21 | 06:39 29 | 17:21 | 06:39 30 | 17:25 | 06:40 With the basic algorithm 24 | 17:25 | 06:32 25 | 17:24 | 06:33 26 | 17:24 | 06:34 27 | 17:24 | 06:35 28 | 17:23 | 06:36 29 | 17:23 | 06:37 30 | 17:23 | 06:38 So when I have a round tuit with "sunrise" written on it, I will check the precise algorithm. But at least, now, the loops will always exit, even if the returned value is not right. And many thanks to the people at http://geocoder.opencagedata.com/ who reported the bug. Jean Forget