http://www.perlmonks.org?node_id=903491


in reply to Open multiple file handles?

As davido indicates, you don't need to know which file you are reading from, just read all the content from all the files. So the built-in <> operator will do the trick. You can copy @ARGV to another array or produce the first line ahead of time, before consuming the arguments.

Use a hash to hold the data you are building. From the example, you read (key,value) pairs from the input. Then you output, for each key, all the values it had been used with. after reading $key and $value, do a push @{$concordance{$key}},$value;. Then when you are all done, something like

while (my ($key, $vals)=each %concordance) { say $key, ' ', join(' ', @$vals); }