in reply to Merge Purge

Seems rather odd ... but interesting:
use strict; my (@line,@last); while (<DATA>) { @line = split('\|',$_,8); @last = map { $line[$_] || $last[$_] } (0..$#line); print join('|',@last); } __DATA__ 1|krazken|123 Main|BFE|AR|72210|555-2345|1 2|kraken||||||1 3|krayken|||||555-2345|1
So basically, read the line and use the value found on the previous (last) line if one was not found on this line. Only works if the first line contains no blank values. (and you only had six pipes on the third line - i added a seventh to my example.)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)