I don't see the exact reason. But after having a look in the code (Perl.pm, sub _create_socket, which tries ports from 1023 down to 512 to bind to), maybe the ssh object is not destroyed between the loops. You could try:
** define $ssh as my variable within the loop (not outside as currently)
** put the code within the loop in a separate block, containing the my-Definition of $ssh
** use "undef $ssh" at the end of the loop (still within it of course)
** Insert some diagnostic code at the beginning of the loop that a) examines the $ssh object before the second "loop run" and/or b) sleeps for e.g. a minute, so that you can look whats happening with the bound port (netstat -neat from cmdline)
I don't have the Modules installed, so I didn't made tests, sorry.
joe
I tried some of your recommendations, like declaring $ssh in the loop and use "undef $ssh" at the end, but didn't solve the problem.
I did use netstat -neat during, and after the script launch. I didn't see anything weird during the script running, I did see something bizarre after :
tcp 0 0 192.168.0.3:1023 192.168.0.1:22 TIME_WAIT 0 0
that line, stayed there for at least a full minute before disappearing. So I decided to add a 2min sleep at the end of the loop... and to my surprise : IT WORKED!
I used netstat during the 2min sleep, it seems that the connection to the 1023 socket lasts something between 1-2 minutes.
It's weird, I wish there were another way around it. If anybody got an explanation or a better solution about this "socket bind for more than a minute, than just disappears" enigma, I'd be glad.
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>