in reply to Sockets/filehandles as hash key?

Have you considered using Tie::RefHash? Since the socket handles are refrences and you can't use refrences as hash keys without some special magic first....
use Tie::RefHash; my %sockethash; tie %sockethash, 'Tie::RefHash'; ... @readable_handles=$selectobj->can_read(0.1); foreach my $socket (@readable_handles) { $sockethash{$socket}->{readable}=1; } etc...