Without using
Tie::RefHash, you can't (documented in
perlfaq4, "How can I use a reference as a hash key?"). When you use a reference as a hash key, it is stringified (turned into a string representation of the memory address), after which the key cannot be used as a reference. For example, one of your hash keys will look something like
IO::Socket::INET=GLOB(0x80665b4) when examined.
You could change your data structure to store your objects in an array of hashes:
# in some loop
my $client= $server->accept();
push @clients => {
socket => $client,
bytesTransferred => 0,
};
Given that you were originally using a hash, the order probably doesn't matter, but for what it's worth, an array will keep the objects in the order originally inserted.
BTW, searching for 'object hash key' and 'reference hash key' yielded the following nodes related to your question:
Problem using object references as hash keys
using references as keys in a hash.
array reference as hash key
If a hash key is a reference...
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.