use Data::Dumper;
and, then, right after closing the $HUBFILE file handle, to print out the content of the @hubs array:
print Dumper \@hubs;
to see the actual content of @hubs after having read the input file.
My guess is that you'll also see only one record there, which would confirm that regex probably needs some change.
Another thing you could do is to try to make the regex less strict about what it sees (maybe you don't have tabs, but spaces somewhere in your input):
push @hubs, $1 if $line =~ /\d+ \s+ (\w+) \s+/x;
Finally, it would be useful if you posted a sample of your input data between <c> and </c> tags, so that we get a better idea of what this input really looks like.
|