Given that we are still disagreeing on what is the best way to do it; Can we use all information used so far to get the most unique possible for now? Even if it's not perfect, it's a start. Even if some of the information seems extraneous to some people (and may be) it's still better than nothing.
Short of using UUID i'd say doing something like this. I've tried to put the order of information from most static to most dynamic. Using HiRes::Time my $ip = $conn->remote_ip($ip); my $rport = $conn->remote_port || "0"; my $lport = $conn->local_port || "0"; my $start = time; my $id = "$$_$start.$lport_$ip:$rport"; -- JT Moree