Ok - I'll take a stab at answering your question "What am I doing wrong?" :
- Not using 'strict'. (add "use strict;" to the top of your code)
- Not using canonical "open" with local filehandle. (Try : open(my $f, "<", $file) or die "Cannot open '$file':$!";)
- Not declaring variables (use my @array; (follows from "use strict"))
- Not formatting/aligning your code for visibility
- Not following advice (davido's code works for what you need)
- Not reading how hashes work
- Not closing the file handle you opened.
- Not posing your question(s) clearly
- Not showing what you expect as a result of your code
- Not showing sample data
The answer to the question in your previous post on the meaning of "/g" can be found by running "perldoc perlre".
I hope life isn't a big joke, because I don't get it.