Hi Jaap --
Thanks for the note.
The Astro::Coord::ECI::TLE object's pass() method is capable of computing close approaches to other bodies in the sky -- including other satellites as it turns out. I'm pretty sure this works, not only because I have observed predicted transits of the Moon, but because I know of an ESA subcontractor who uses this functionality to prevent satellites with stronger signals from stealing the antenna during a communication run.
The optional last argument of the pass() method is a reference to an array that contains the necessary objects. If you provide this argument, the return of the pass() method will contain events for the closest approach of the the satellite to the bodies in the array, provided that approach is closer than the value of the appulse attribute (in radians)
Unfortunately, though you can pass an Astro::Coord::ECI::Sun object in this array and get close approaches (or transits if the approach is within .25 degrees) there is no Perl class that I know of that represents Venus. At one point I started on objects for the solar system, using the VSOP87 model, but this stalled about five years ago (I was having trouble with the Moon, as I remember), and I am not sure where I was going to get test data in any case.
Also missing is machinery to calculate first through fourth contacts. First and second would be virtually simultaneous for the ISS (which takes less than a second to transit the Sun or Moon), as would third and fourth. I think the pieces are all there to make the calculation, but the calculation itself is missing.
Does this answer your question? If not, please let me know.