complaining that they're closing when you open a new socket (because you're using the same (global) $remote to hold the reference to the socket object; as soon as you make the next object you lose the reference to the old one and it gets destroyed and hence close() will be called on it)
or asking if that's what will happen when you make a new IO::Socket instance?