Como posso grep e classificar arquivos de texto usando Perl?

Eu tenho um arquivo de log simples, que é muito confuso e preciso que seja limpo. O arquivo contém cabeçalhos de log, mas todos eles são misturados. Portanto, preciso classificar os arquivos de log de acordo com os cabeçalhos de log. Não há número estático de linhas - isso significa que não há número fixo de linhas para cada cabeçalho do arquivo de texto. E estou usando o perl grep para resolver os cabeçalhos.

Os arquivos de log são mais ou menos assim:

Car LogFile Header
<text>
<text>
<text>
Car LogFile Header
<text>
Car LogFile Header
<and so forth>

Eu inventei / procurei um algoritmo simples, mas ele não parece estar funcionando. Alguém pode me guiar? Obrigado!

#!/usr/bin/perl

#use 5.010; # must be present to import the new 5.10 functions, notice 
#that it is 5.010 not 5.10


my $srce = "./root/Desktop/logs/Default.log";
my $string1 = "Car LogFile Header";
open(FH, $srce);
my @buf = <FH>;
close(FH);
my @lines = grep (/$string1/, @buffer);

Depois de executar o código, não há resultado mostrado no terminal. Alguma ideia?

questionAnswers(2)

yourAnswerToTheQuestion