use strict; use warnings; my $heading = ''; my @lines; while (my $line = ) { chomp $line; if ($line =~ /^[1-9]/) {#New heading line ProcessEntry ($heading, @lines) if length $heading; $heading = $line; @lines = (); } else {push @lines, $line;} } ProcessEntry ($heading, @lines) if length $heading; sub ProcessEntry { my $heading = shift; my @lines = @_; print "Heading is: $heading\n"; print "Lines are:\n " . join "\n ", @lines; print "\n\n"; }