Net::SSL is part of Crypt::SSLeay. While working on a bug report today, I was distracted by how many times the poor old * made an appearance.
For example, consider Net::SSL::configure:
*$self->{ssl_version} = $ssl_version;
*$self->{ssl_debug} = $ssl_debug;
*$self->{ssl_arg} = $arg;
*$self->{ssl_peer_addr} = $arg->{PeerAddr};
*$self->{ssl_peer_port} = $arg->{PeerPort};
Maybe it's because I am not that familiar with pre 5.8 Perl, but I just can't pinpoint whether there is a significant reason for using * on the LHS. Wouldn't just *$self->{ssl_peer_port} = $arg->{PeerPort}; be sufficient? Or, is there something deep going on here (e.g. local $_ versus local *_)?
I don’t have the module installed, so can’t check easily enough, but I presume that it’s because the object is a globref; that is, a reference to a blessed typeglob.
There’s no aliasing going on here. When you write
It first derefs the globref back to a full typeglob. It then grabs just the hashref aspect of the typeglob and proceeds to dereference that.
This isn’t a pre- or post-5.8 thing.
What was it you were thinking it was doing?