#!/usr/bin/perl -w

# Uma solucao para o exercicio 2 da Aula 26
# MAC211, 1S2009
# M.S.Reis, 18.06.2009

use strict;

my %materia = ();
my @linha = [];

# abre um arquivo para leitura
#
open (ARQUIVO, "<", "materias.txt") or die "Erro ao abrir 'materias.txt'\n";

# a cada iteracao de <ARQUIVO>, uma linha eh lida e eh armazenada em uma
# lista de siglas em @linha; em seguida, grava as ocorrencias de
# de cada sigla em um hash (uc torna maiusculas as letras da chave).
#
while(<ARQUIVO>){

   my @linha = ($_ =~ /([mM][aA][cC]\d+\d+\d+\d?)/ig);
	
   foreach (@linha){
      if (defined $materia{uc $_}){
	 $materia{uc $_}++;
      }
      else{
         $materia{uc $_} = 1;
      }
   }
}

close(ARQUIVO);

# imprime as materias e suas respectivas ocorrencias
#
foreach my $chave (sort keys %materia){
   printf "%7s - $materia{$chave}\n", $chave;
}

