my $symbol; while (<>) { if (my $hit/^SYMBOL: $replacements/i ... /^END SYMBOL/i) { if ($hit==1) { $symbol=$1; } else { s/^(Parent Submap:).*/$1 $replace{$symbol}/; } } print; }