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...