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


in reply to Re^2: Counting In a Log File from Multiple Variables
in thread Counting In a Log File from Multiple Variables

I would change:

while(<FILE>) { # chomp; #@_=split(','); foreach $line (<FILE>) { @_=split(','); $Data->{$_[1]}->{$_[3]}++; } }

to

while(<FILE>) { chomp; @_=split(','); $Data->{$_[1]}->{$_[3]}++; }

The "chomp" will get rid of that pesky newline you are seeing in the output. Also, the "while(<FILE>)" will process each line of your file (one at a time) and will assign each line to $_. This means your "foreach $line (<FILE>)" is not needed.

Note: The foreach loop in your code would assign data to the $line variable. Your split is splitting $_ (nothing specified mean you get to use the default $_)... if you were to use your foreach, you would want to change your split to "@_=split(',',$line);"