$txt = <$fh> reads a line from the filehandle, it doesn't make a copy of it. see 'perldoc
perlop' under
I/O operators. When you are passing a filehandle to a sub, you should generally say, e.g.:
foo(\*SOCK),
(except on the built in functions which open the fh like
open and
socket), but
nothing you've described sounds all that bad, except the bare 'SOCK' indicates the lack of 'use
strict' which is
probably bad. Are you trying to make it work with
strict and warnings?
Update: Ok, I've changed my mind. It's probably bad.