Hello umaykulsum, one problem I see with your code is that while (<>) shifts (removes) the arguments from @ARGV. So when you are done reading, the size of @ARGV is 0. You can save the count before reading: my $file_count = @ARGV;
Another issue is that single quote prevent interpolation. Try print '\t\s';, you'll see that you don't get a tab and a space, but the string \t\s. You want to use double quotes instead. You either want to split on literal string, like "\t " or use a pattern in a regex like /\t\s/
You can optimize your code by doing more work in one loop (untested):
while (<>) { chomp; my ( $key, $value ) = split /\t\s/, $_; # Edited thanks to Anomalous +Monk $compare{$key}{count}++; $compare{$key}{sum} += $value; if ($file_count == $compare{$key}{count}) { print "$key: ", $compare{$key}{sum}; } }
Edit: "\t\s" doesn't work, see AnomalousMonk's answer below :)
In reply to Re: count total number of occurrence in all files
by Eily
in thread Reaped: count total number of occurrence in all files
by NodeReaper
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |