#!/usr/bin/perl -w

use strict;

# How would I test to be sure that the user gave me an argument?

my $filename = $ARGV[0]; 

open(INFILE, "<$filename") or die "Couldn't open $filename\n";

my %expenses;
my $line;

while( $line = <INFILE> ) {
  my ($category, $item, $price);
   
  chomp($line);
  ($category, $item, $price) = split( /\s+/, $line);
  
  if(defined( $expenses{$category} )) {
    $expenses{$category} += $price;
  } else {
    $expenses{$category} = $price;
  }
}

close(INFILE);

print("Total expenses by category:\n");

foreach my $key (keys(%expenses)) {
  print(" $key  $expenses{$key}\n");

}
