Always use strictures (use strict; use warnings; - see The strictures, according to Seuss). If your debugger can't cope with lexical variables you really need a better debugger! You might conside...
*DATA is a file handle, pointing to the part of the source file after the __DATA__ mark.
The ->@* is a post-dereference, it's an alternative way of writing
my @headers...
You're right that there are some differences after the unique names. I think the most likely part to change is also more descriptive of the user mentioned earlier, and can be dismissed. The types of...