$/ = "-------\n"; my @records; while (<>) { my @entries = map { /([^:]+):\s*(.*)/ } split /\n/; push @records, { @entries } if @entries; }