#!/usr/bin/perl use strict; my %record = (); my ($title, $row); while (<>) { if (m/^\scustomer/i ... /rows\)/) { chomp; next if (/^\s+$/); next if (/^TEST/); next if (/---/); next if (/row/); if ($_ =~ m/\s(\D+)/i) { $title = $1; } if ($_ =~ m/\s+(\d+)/i) { $row = $1; } $record{$title} = $row if ( $title ne " "); } } map { print "$_ -> $record{$_}\n" } %record; #### TEST HEADER CUSTOMERPHONE ----------- 1300 (1 row) TEST HEADER CUSTOMERORDER ----------- 0 (1 row) TEST HEADER CUSTOMERCARE ----------- 530 (1 row) #### CUSTOMERORDER -> 1300 1300 -> -> 530 530 -> CUSTOMERPHONE -> -> CUSTOMERCARE -> 0 0 -> #### CUSTOMERPHONE -> 1300 CUSTOMERORDER -> 0 CUSTOMERCARE -> 530