As for number one, that's just throwing away the first
line. It's just the normal readline diamond operator in
void context (technically the scalar is superfluous,
but I put it in out of habit). The return value is
being discarded rather than being saved anywhere
(my $toss = <CUR> would have done just the same
thing with a (useless) temporary).
As for the data structure, it's a hash of hashes. The top
level hash (%data) has keys that are the primary
key from your data file (the names), and the corresponding
value is a hash of key/value pairs from the various data
files. Add something like the following to the end of
the program and you can see what it looks like:
...
use Data::Dumper qw( Dumper );
print Dumper( \%data );
See also perldoc perldsc. |