You probably meant to write:
while ($rh->recv($rx_txt, 1024) > 0) {
$buff .= $rx_txt;
}
But that's not good code when using 'select'. That's only okay if you're only handling one connection at a time. If you're only handling one connection at a time, don't use select.
Also, I hope you know that adding a file handle for "~/.somefile" only makes sense if it's a fifo (named pipe).
There are actually a lot of problems with your code. You should probably look at something somebody else has written. I recommend The Perl Cookbook, although there are a lot of free examples scattered about the internet.