¿Cómo puedo grep y ordenar archivos de texto usando Perl?

Tengo un archivo de registro simple que es muy desordenado y necesito que esté ordenado. El archivo contiene encabezados de registro, pero todos están mezclados. Por lo tanto, necesito ordenar los archivos de registro de acuerdo con los encabezados de registro. No hay un número estático de líneas, eso significa que no hay un número fijo de líneas para cada encabezado del archivo de texto. Y estoy usando perl grep para ordenar los encabezados.

Los archivos de registro son más o menos así:

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

He terminado / buscado un algoritmo simple pero no parece estar funcionando. ¿Alguien puede guiarme? ¡Gracias!

#!/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);

Después de ejecutar el código, no se muestra ningún resultado en el terminal. ¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta