Wow, there's clearly an evil genius at work here.
The splice is an interesting conversion. The thing
you're doing calling i in sub h is slightly confusing,
but I understand what you're doing with the regex in
the while loop now, which I somehow missed last night.
(Oh, I see, it was front-anchored in last night's
version. That must be one of the bug fixes. But,
won't $` contain the separating slash now? I'm still
confused there. You've golfed it beyond my ability
to follow it.)
- You've still got the verbose if/else blocks in sub t.
Converting to the trinary operator saves, if my
calculations are correct, three strokes if you have
to parenthesize the middle part, five if you don't.
Am I missing something?
- You've gone back to the three-argument open; is that
one of the bug fixes you mentioned? I thought it
was semantically the same... and if not, I want to
understand the difference for reasons that have
nothing to do with obfuscation, golf, or P2P.
- I assume the delete is a bugfix, to purge dead peers
from %k entirely. Makes sense.
- The space after the comma in sub g, what's the
reasoning behind that?